我定义了onTouchEvent(MotionEvent事件)来接收imageview的触摸事件。我正在使用多个图像视图,我必须找到哪个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]);
答案 0 :(得分:3)
您可以覆盖onTouchListener。 onTouchListener的代码是
@Override
public boolean onTouch(View v, MotionEvent event) {
/// your stuff
}
使用View v了解触摸的视图
答案 1 :(得分: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;
}
}
}
答案 2 :(得分:0)
您可以为布局xml中的每个android:onClick="clickHandler"
设置View
,并在public void clickHandler(View view)
中定义方法Activity
以处理触摸/点击事件。
这是在1.6中引入的。请查看此LINK以获取更多详细信息。