0
最近私のアプリにマルチタッチを使用しようとしていますが、私の問題の問題を解決するための手助けができませんでした。 メイクを使用し、APIレベル7の古いadkは、アンドロイド2.1を実行するマルチタッチが可能ですか?Androidマルチタッチが動作しません
おかげ
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
int action = event.getAction() & MotionEvent.ACTION_MASK;
switch (action) {
case MotionEvent.ACTION_DOWN: {
float tx = event.getX();
float ty = event.getY();
if (tx > joystick.getWidth() - joystick.getWidth() && tx < (joystick.getWidth()/3) && ty > getHeight() - joystick.getHeight()) {
left();
invalidate();
}
if (tx > (joystick.getWidth()/3)*2 && tx < (joystick.getWidth()) && ty > getHeight() - joystick.getHeight()) {
right();
invalidate();
}
if (tx > getWidth() - button.getWidth() - (button.getWidth()/4)
&& ty > getHeight() - button.getHeight()
- (button.getHeight()/4)) {
jump();
invalidate();
}else{jump_true = 0 ;
jump_is = true;}
break;
}
case MotionEvent.ACTION_MOVE: {
float txm = event.getX();
float tym = event.getY();
if (txm > joystick.getWidth() - joystick.getWidth() && txm < (joystick.getWidth()/3) && tym > getHeight() - joystick.getHeight()) {
left();
right = false;
invalidate();
}
if (txm > getWidth() - button.getWidth() - (button.getWidth()/4)
&& tym > getHeight() - button.getHeight()
- (button.getHeight()/4)) {
//jump();
//invalidate();
}else{
//jump_true = 0 ;
//jump_is = true;
}
if (txm > (joystick.getWidth()/3)*2 && txm < (joystick.getWidth()) && tym > getHeight() - joystick.getHeight()) {
right();
left = false;
invalidate();
}
if (txm > getWidth() - button.getWidth() - (button.getWidth()/4)
&& tym > getHeight() - button.getHeight()
- (button.getHeight()/4)) {
jump();
invalidate();
}else{jump_true = 0 ;
jump_is = true;}
break;
}
case MotionEvent.ACTION_POINTER_DOWN: {
float txp = event.getX();
float typ = event.getY();
if (txp > getWidth() - button.getWidth() - (button.getWidth()/4)
&& typ > getHeight() - button.getHeight()
- (button.getHeight()/4)) {
jump();
invalidate();
}else{jump_true = 0 ;
jump_is = true;}
if (txp > joystick.getWidth() - joystick.getWidth() && txp < (joystick.getWidth()/3) && typ > getHeight() - joystick.getHeight()) {
left();
right = false;
invalidate();
}
if (txp > getWidth() - button.getWidth() - (button.getWidth()/4)
&& typ > getHeight() - button.getHeight()
- (button.getHeight()/4)) {
//jump();
//invalidate();
}else{
//jump_true = 0 ;
//jump_is = true;
}
if (txp > (joystick.getWidth()/3)*2 && txp < (joystick.getWidth()) && typ > getHeight() - joystick.getHeight()) {
right();
left = false;
invalidate();
}
break;
}
case MotionEvent.ACTION_POINTER_UP: {
touch_up();
invalidate();
break;
}
case MotionEvent.ACTION_UP: {
touch_up();
invalidate();
break;
}
}
return true;
}
private void touch_up() {
left = false;
right = false;
jump_true = 0 ;
jump_is = true;
}
private void left() {
left = true;
}
private void right(){
right = true;
}
private void jump() {
jump_true=1;
jump_done = false;
}
エミュレータまたは電話でテストしていますか?電話を使用している場合は、ハードウェアがマルチタッチをサポートするかどうかを確認してください。 – Guedes
「働いていない」とはどういう意味ですか?コードを投げ捨て、それがうまくいかないと言っているのではなく、何が間違っていて、何を試してきたのか教えてください。 – slayton
私の携帯電話は間違いなくマルチタッチをサポートしていません。私はそれが1本の指でしか動作しない第2の指を検出しません –