2

我定义了 onTouchEvent(MotionEvent event) 来接收 imageview 的触摸事件。我正在使用多个图像视图,我必须找到接收到触摸事件的图像视图。是否可以在 onTouchEvent 中获取 imageview?

public void createImageViews()
{
  int i = 0;

  imageArray[0] = (ImageView)findViewById(R.id.image1);
  imageArray[1] = (ImageView)findViewById(R.id.image2);
  imageArray[2] = (ImageView)findViewById(R.id.image3);
  imageArray[3] = (ImageView)findViewById(R.id.image4);
  imageArray[4] = (ImageView)findViewById(R.id.image5);
  imageArray[5] = (ImageView)findViewById(R.id.image6);

  for (i = 0; i < count; i++)
  {
    imageArray[i].setOnTouchListener(this);
  } 
}
 public class Touch extends Activity implements OnTouchListener, AnimationListener { }

我试过使用

 public boolean onTouch(View v, MotionEvent event) { } but not receiving the touch events.

在 imageview 上启动动画后,我没有在 onTouch() 中观察到触摸事件,也没有在 onTouchEvent() 中获得触摸事件。imgArray[g_animCount].startAnimation(movArray[g_animCount]);

4

3 回答 3

3

您可以覆盖 onTouchListener。onTouchListener 的代码是

@Override
public boolean onTouch(View v, MotionEvent event) {
/// your stuff
}

使用 View v 知道被触摸的视图

于 2012-04-20T17:48:32.363 回答
2
use the below sample code snippet::::

    public class MyImageView extends Activity implements OnTouchListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lay_name);        
        int i = 0;
        imageArray[0] = (ImageView)findViewById(R.id.image1);
        imageArray[1] = (ImageView)findViewById(R.id.image2);
        imageArray[2] = (ImageView)findViewById(R.id.image3);
        imageArray[3] = (ImageView)findViewById(R.id.image4);
        imageArray[4] = (ImageView)findViewById(R.id.image5);
        imageArray[5] = (ImageView)findViewById(R.id.image6);

        for (i = 0; i < count; i++)  {
            imageArray[i].setOnTouchListener(this);
         } 


    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.image1:
        //your stuff
        break;
        case R.id.image2:
        //your stuff        
        break;
        case R.id.image3:
        //your stuff
        break;
        case R.id.image4:
         //your stuff
        break;
        case R.id.image5:
         //your stuff
        break;
        case R.id.image6:
         //your stuff
        break;
        }
    }

}

于 2012-04-20T17:56:31.403 回答
0

您可以在布局 xml 中android:onClick="clickHandler"为每个设置并在您的中定义一个方法来处理触摸/单击事件。Viewpublic void clickHandler(View view)Activity

这是在 1.6 中引入的。检查此链接以获取更多详细信息。

于 2012-04-20T18:21:01.873 回答