使用 onTouchEvent 使位图可点击 - Android
Making a Bitmap clickable using onTouchEvent - Android
我创建了一个 SurfaceView 并在其上放置了一个 onTouchEvent,MotionEvent 获取了整个屏幕,如下所示:
@Override
public boolean onTouchEvent (MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
if (!player.getPlaying()&& newGameCreated && reset) {
player.setPlaying(true);
player.fly(true);
lives = 3;
}
if (player.getPlaying()) {
if (!started) started = true;
reset = false;
player.fly(true);
}
return true;
}
if (event.getAction()==MotionEvent.ACTION_UP) {
player.fly(false);
return true;
}
// This is inside a class that extends SurfaceView
return super.onTouchEvent(event);
}
而且我需要检查位图上的触摸是否使用触摸的 x-y 位置并在条件为真时执行不同的操作,我如何在这个 onTouchEvent 方法上执行此操作?
你需要知道位图的坐标,他的高和宽。如果你知道所有这些,你可以声明方法:
public boolean clickedOnBitmap(final int x, final int y) {
return x > bitmap.x && x < bitmap.x + bitmap.width
&& y > bitmap.y && y< bitmap.y + bitmap.height;
}
我创建了一个 SurfaceView 并在其上放置了一个 onTouchEvent,MotionEvent 获取了整个屏幕,如下所示:
@Override
public boolean onTouchEvent (MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
if (!player.getPlaying()&& newGameCreated && reset) {
player.setPlaying(true);
player.fly(true);
lives = 3;
}
if (player.getPlaying()) {
if (!started) started = true;
reset = false;
player.fly(true);
}
return true;
}
if (event.getAction()==MotionEvent.ACTION_UP) {
player.fly(false);
return true;
}
// This is inside a class that extends SurfaceView
return super.onTouchEvent(event);
}
而且我需要检查位图上的触摸是否使用触摸的 x-y 位置并在条件为真时执行不同的操作,我如何在这个 onTouchEvent 方法上执行此操作?
你需要知道位图的坐标,他的高和宽。如果你知道所有这些,你可以声明方法:
public boolean clickedOnBitmap(final int x, final int y) {
return x > bitmap.x && x < bitmap.x + bitmap.width
&& y > bitmap.y && y< bitmap.y + bitmap.height;
}