我用canvas写了一个View,里面有很多矩形。我希望将这些矩形用作将打开新 Activity 的按钮。我该怎么做?
最佳答案
您需要注意 Suri Sahani 示例,onTouchEvent 会在任何符合触摸事件条件的操作上调用,这意味着按下、释放、移动手势等 (Android Event Listener Documentation)。要正确使用 onTouchEvent,您需要检查 MotionEvent 类型。
List<Rect> retangles;//Assume these have been drawn in your draw method.
@Override
public boolean onTouchEvent(MotionEvent event) {
int touchX = event.getX();
int touchY = event.getY();
switch(event){
case MotionEvent.ACTION_DOWN:
System.out.println("Touching down!");
for(Rect rect : rectangles){
if(rect.contains(touchX,touchY)){
System.out.println("Touched Rectangle, start activity.");
Intent i = new Intent(<your activity info>);
startActivity(i);
}
}
break;
case MotionEvent.ACTION_UP:
System.out.println("Touching up!");
break;
case MotionEvent.ACTION_MOVE:
System.out.println("Sliding your finger around on the screen.");
break;
}
return true;
}
关于android - 允许矩形可点击 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258146/