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