我有多个 ImageView,我希望在我将手指拖过多个图像时为每个图像触发 onTouch 事件。目前 onTouch 事件仅在第一个 ImageView 上触发(或实际上在多个 ImageView 上触发,但仅在多点触控屏幕时触发)。伪代码:
for(int i=0;i<5;i++){
ImageView img=new ImageView(this);
LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(width,height);
img.setImageResource(R.drawable.cell);
img.setOnTouchListener(this);
mainLayout.addView(img,layoutParams);
}
...
public boolean onTouch (View v, MotionEvent event){
Log.d("MY_APP","View: " + v.getId());
return false;
}
我是不是找错了树?
感谢您的帮助。
最佳答案
我认为您需要使用 move 事件而不是 touch 事件,并将 getX 和 getY 与您的 View 位置进行比较。
@Override
public boolean onTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
switch (action) {
// MotionEvent class constant signifying a finger-down event
case MotionEvent.ACTION_DOWN: {
break;
}
// MotionEvent class constant signifying a finger-drag event
case MotionEvent.ACTION_MOVE: {
X = ev.getX();
Y = ev.getY();
//compare here using a loop of your views
break;
}
// MotionEvent class constant signifying a finger-up event
case MotionEvent.ACTION_UP:
break;
}
return true;
}
关于Android 为多个 ImageView 触发 onTouch 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222688/