我有一组图片。我将它作为网格显示在屏幕上。 所以基于选择我想做的每个图像动作。 我做了。但还有一个要求是,当我们通过这些图像移动手时,我也必须执行相同的操作。也就是说,我必须跟踪我现在触摸的图像并执行操作。我该如何实施呢?有谁有想法吗?请回复..
答案 0 :(得分:0)
从View.OnTouchListener尝试onTouch()
事件。当用户执行限定为触摸事件的操作时调用此方法,包括按下,释放或屏幕上的任何移动手势(在项目的范围内)。
希望这有帮助。
答案 1 :(得分:0)
您可以为图像设置监听器,即
imgView.setOnTouchListener(...)
imgView.setOnFocusChangeListener(...)
或
imgView.setOnClickListener()
然后在这些侦听器中执行操作。
如果您使用setOnFocusChangeListener,那么您应该能够处理所有情况,无论您通过触摸或轨迹球选择图像的方式如何。
答案 2 :(得分:0)
我完成了。
在下面的代码colorGV
中是我的网格名称。
添加监听器。
colorGV.setOnTouchListener(new OnTouchClick(context));
将onTouchClick定义为:
private class OnTouchClick implements OnTouchListener {
Context context;
OnTouchClick(Context context) {
this.context = context;
}
public boolean onTouch(View v, MotionEvent event) {
try {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
int x = (int) event.getX();
int y = (int) event.getY();
int position = -1;
for (int i = 0; i < colorGV.getChildCount(); i++) {
Rect ButtonRect = new Rect();
colorGV.getChildAt(i).getHitRect(ButtonRect);
if (ButtonRect.contains(x, y)) {
position = i;
break;
}
}
if (position >= 0 && prevPos != position) {
System.out.println("Position changed :" + position);
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}