我有一个带有imageView的活动,当用户触摸它时,我打开另一个活动与另一个imageView在同一个地方与前一个相同,问题是,我需要知道用户是否仍在触摸imageView&自上次活动以来从未离开过屏幕的手指(所以我可以让他用手指移动新的图像)?
我试图听取触摸事件,但触摸事件仅在用户在渲染视图后开始触摸imageView时触发,因此他必须将手指从屏幕上移开。再次开始触摸imageView,我想解决这个问题。
我正在使用AndroidAnnotations,因此侦听器代码如下:
@Touch(R.id.myImageView)
public void movingImageViewByUser(View view, MotionEvent event) {
// moving the button with the user finger here
}
答案 0 :(得分:1)
您需要将触摸事件状态存储在全局变量中,该变量可以在两个活动之间访问。
有了这个,你需要一个单独的应用程序上下文类,如下所示:
import android.app.Application;
public class GlobalVars extends Application {
public static Boolean mouseDown = false;
}
可以像这样访问变量:
final GlobalVars globs = (GlobalVars)context.getApplicationContext();
globs.mouseDown = true;
所以考虑到这一点,这应该是你的onTouchListener可能是这样的:
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v,MotionEvent event) {
final GlobalVars globs = (GlobalVars)context.getApplicationContext();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
globs.mouseDown = true;
break;
case MotionEvent.ACTION_UP:
globs.mouseDown = false;
break;
}
return true;
}
});
希望这有帮助