private View[] getChildViews(ViewGroup group) {
int childCount = group.getChildCount();
final View[] childViews = new View[childCount];
for (int index = 0; index < childCount; index++) {
childViews[index] = group.getChildAt(index);
}
return childViews;
}
private void setOnTouchListener(ViewGroup group) {
View[] childViews = getChildViews(group);
for (View view : childViews) {
if (view instanceof ImageButton) {
view.setOnTouchListener(this);
} else if (view instanceof ViewGroup) {
setOnTouchListener((ViewGroup) view);
}
}
}
@Override
public boolean onTouch(View v,MotionEvent e) {
//버튼 누를 때
if(e.getAction()==MotionEvent.ACTION_DOWN){
if(v.getId()==R.id.btnFL)
sendToque(1);
else if(v.getId()==R.id.btnF)
sendToque(2);
else if(v.getId()==R.id.btnFR)
sendToque(3);
else if(v.getId()==R.id.btnL)
sendToque(4);
else if(v.getId()==R.id.btnR)
sendToque(5);
else if(v.getId()==R.id.btnBL)
sendToque(6);
else if(v.getId()==R.id.btnB)
sendToque(7);
else if(v.getId()==R.id.btnBR)
sendToque(8);
else if(v.getId()==R.id.btnLight)
sendToque(10);
else {
sendToque(0);
}
}
//버튼에서 손 뗄 때
else if(e.getAction()==MotionEvent.ACTION_UP){
if(v.getId()==R.id.btnFL)
sendToque(9);
else if(v.getId()==R.id.btnF)
sendToque(9);
else if(v.getId()==R.id.btnFR)
sendToque(9);
else if(v.getId()==R.id.btnL)
sendToque(9);
else if(v.getId()==R.id.btnR)
sendToque(9);
else if(v.getId()==R.id.btnBL)
sendToque(9);
else if(v.getId()==R.id.btnB)
sendToque(9);
else if(v.getId()==R.id.btnBR)
sendToque(9);
else if(v.getId()==R.id.btnLight)
sendToque(9);
else {
sendToque(0);
}
}
return false;
}
제가 지금 안드로이드로 RC카 조종어플을 만들고 있는데 위에 보시는 것처럼 버튼 한개씩 누르는 것 까지는 되서 이제 멀티터치고 두개누르는 것을 구현해야되는데 어렵네요..ㅠㅠㅠㅠㅠ
인터넷 여기저기 다 검색해봐도 ACTION_POINTER_DOWN,ACRION_POINTER_UP을 사용해서 좌표값을 받아서 쓰는 예제밖에 없어서..ㅠㅠㅠㅠ 좌표값아니고는 사용할 수 없는건가요??
도와주세요ㅠㅠㅠㅠㅠ