このガイドを参考にして、最初のAndroidアプリを作成しています。現在、キャンバスに赤いボタンがあり、ユーザーがボタンをクリックすると、ボタンのビットマップが緑のボタンになるようにブール値(緑)がtrueに設定されます。
アプリケーションのその部分は機能しますが、ユーザーがキャンバスのどこをクリックしたかに関係なく機能します。ユーザーがボタンのビットマップをクリックしたときにのみブール値を変更したい。これが私のコードに現在あるものです:
onTouchEvent()メソッド
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
button.handleActionDown((int)event.getX(), (int)event.getY());
if (button.isTouched()) {
green = true;
}
} if (event.getAction() == MotionEvent.ACTION_MOVE) {
} if (event.getAction() == MotionEvent.ACTION_UP) {
if (button.isTouched()) {
green = false;
button.setTouched(false);
}
}
return true;
}
handleActionDown()メソッド
public void handleActionDown(int eventX, int eventY) {
if (eventX >= (x - bitmap.getWidth() / 2) && (eventX <= (x + bitmap.getWidth()/2))) {
if (eventY >= (y - bitmap.getHeight() / 2) && (eventY <= (y + bitmap.getHeight()/2))) {
setTouched(true);
} else {
setTouched(false);
}
} else {
setTouched(false);
}
}
ACTION_DOWNイベントがそれを作成して、ビットマップのビットマップがタッチされたときにのみトリガーされるようにするために、私が欠落しているものを誰かが見ることができますか?
よろしく