계속같은 질문글만 올리는거 같아서 죄송합니다..
그림같은 화면을 xml을 이용해서 ImageView로 만들었는데요..
각 위치별로 터치를 구분하고싶은데 그게잘 안됩니다.. 위의 이미지부분과 아래이미지부분을 구별해서 누르고싶은데
잘 안되네요.. 한번 봐주시고 조언좀 부탁드립니다..ㅠㅠ
public class Main extends Activity {
ImageView pointer1;
ImageView pointer2;
int px, py;
boolean BTNUP, BTNDOWN;
static final int INVALID_POINTER_ID = -1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
pointer1 = (ImageView) findViewById(R.id.pointer1);
pointer2 = (ImageView) findViewById(R.id.pointer2);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
int touch_id;
px = (int) event.getX();
py = (int) event.getY();
BTNUP = (px > 200 && px < 300 && py > 65 && py < 165);
BTNDOWN = (px > 200 && px < 300 && py > 220 && py < 280);
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
touch_id = event.getPointerId(0);
if (BTNUP) {
pointer1.setAlpha(70);
Log.d("AJC", touch_id + " : ACTION_DOWN ( " + px + " : " + py
+ " ) ");
} else if (BTNDOWN) {
pointer2.setAlpha(70);
Log.d("AJC", touch_id + " :ACTION_DOWN (" + px + " : " + py
+ " )");
}
break;
}
case MotionEvent.ACTION_UP: {
pointer1.setAlpha(255);
pointer2.setAlpha(255);
break;
}
case MotionEvent.ACTION_POINTER_DOWN: {
int pointer_index = (action & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT;
int pointer_id = event.getPointerId(pointer_index);
if (pointer_index == 1) {
if (pointer_id != INVALID_POINTER_ID) {
pointer2.setAlpha(70);
Log.d("AJC", pointer_id + " : ACTION_POINTER_DOWN (" + px
+ " : " + py + " ) ");
}
} else if (pointer_index == 0) {
if (pointer_id != INVALID_POINTER_ID) {
pointer1.setAlpha(70);
Log.d("AJC", pointer_id + " : ACTION_POINTER_DOWN (" + px
+ " : " + py + " ) ");
}
}
break;
}
case MotionEvent.ACTION_POINTER_UP: {
pointer1.setAlpha(255); // 투명
pointer2.setAlpha(255); // 투명
break;
}
}
return false;
}
}
다음은 로그인데요 처음 "UP" 이미지부분을 터치하고나서는 어디를 누르던지 그부분의 x,y값만 받아옵니다..
x,y값이 바뀌는줄 알고 이것저것 해봤는데 안바뀌니까 어떻게 구분해서 "UP"이미지와 "SHIFT"이미지 부분을
구분해서 터치해야할지 막막합니다.. ㅠㅠ 도와주세요 ㅠㅠ
07-01 21:54:22.772: DEBUG/AJC(28198): 0 : ACTION_DOWN ( 219 : 128 )
07-01 21:54:23.502: DEBUG/AJC(28198): 1 : ACTION_POINTER_DOWN (233 : 120 )
07-01 21:54:24.863: DEBUG/AJC(28198): 0 : ACTION_DOWN ( 225 : 106 )
07-01 21:54:25.232: DEBUG/AJC(28198): 1 : ACTION_POINTER_DOWN (236 : 99 )
07-01 21:54:25.997: DEBUG/AJC(28198): 0 :ACTION_DOWN (258 : 236 )
07-01 21:54:26.342: DEBUG/AJC(28198): 1 : ACTION_POINTER_DOWN (251 : 227 )
결국 하고자 하는건 A버튼과 B버튼을 동시에 누르고 싶은거에요..




public final float getX (int pointerIndex)