-1

我想在播放动画时禁用触摸监听器。我为此使用了 WebView 并且动画运行成功。但问题是,除非完成 1 个循环,否则我不想启用触摸侦听器。循环完成后,我想启用触摸侦听器,以便再次播放循环。我正在使用触摸动作事件,但无法执行我需要的操作。

GIFWebView view = new GIFWebView(this, "file:///android_asset/imageedit_ball.gif");
setContentView(view);

public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub 
   if (event.getAction()==MotionEvent.ACTION_DOWN) { 
       // view.loadUrl("file:///android_asset/imageedit_ball.gif"); 
       GIFView view1 = new GIFView (this, "file:///android_asset/imageedit_ball.gif");
       setContentView(view1); 
       view1.setOnTouchListener(this);
   }
   return true; 
}
4

2 回答 2

2

无论动画是打开还是停止,您只需要保留一个标志变量。

public boolean isAnimationOn = false;

true在动画开始和false动画结束时设置此变量。

public boolean onTouch(View v, MotionEvent event){
    if (isAnimationOn)
        return false;
    else
        return true;
} 
于 2013-08-14T10:07:52.437 回答
1

实现它的简单方法是在其上添加透明布局(将其添加到您的 xml 填充父级高度和宽度中)。

在动画开始

transaparentlayout.setClickabe(true); 

在动画结尾

transaparentlayout.setClickabe(false);

非常简单。

于 2013-08-26T17:41:12.277 回答