在播放gif动画时禁用ontouch侦听器

时间:2013-08-14 09:44:53

标签: android animation webview

我想在播放动画时禁用触控侦听器。我已经使用了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; 
}

2 个答案:

答案 0 :(得分:2)

你只需要保持一个标志变量,无论动画是开启还是停止。

public boolean isAnimationOn = false;

在动画开始时创建此变量true,在动画结束时创建false

public boolean onTouch(View v, MotionEvent event){
    if (isAnimationOn)
        return false;
    else
        return true;
} 

答案 1 :(得分:1)

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

在动画开始

transaparentlayout.setClickabe(true); 

在动画结尾

transaparentlayout.setClickabe(false);
很简单。