Определение касаемого элемента
Старую проблему с несколькими почти решил, но осталось вот что:
@Override
public boolean onTouch(View v, MotionEvent e)
{
switch(e.getAction())
{
case MotionEvent.ACTION_DOWN:
играем_звук;
return false;
case MotionEvent.ACTION_POINTER_2_DOWN:
проверяем_какую_кнопку_мы_коснулись_и_играем_звук;
return false;
default:
return false;
}
Проблема на данном этапе
case MotionEvent.ACTION_POINTER_2_DOWN:
проверяем_какую_кнопку_мы_коснулись_и_играем_звук;
return false;
Как реализовать проверку какой именно кнопки мы коснулись?
Т.е код должен работать так. У нас зажата кнопка 1. Мы кликаем кнопку 5, срабатывает событие из кнопки 1 (MotionEvent.ACTION_POINTER_2_DOWN
), оно определяет, что мы нажали кнопку 5 и играет звук.
Добавление.
//Objects
final ArrayList<View> views = new ArrayList<View>();
views.add((View)Button1);
views.add((View)Button2);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch(arg1.getAction()) {
case MotionEvent.ACTION_DOWN:
float X = arg1.getX();
float Y = arg1.getY();
for(View touchBtn: views)
{
float Left = touchBtn.getLeft();
float Width = touchBtn.getWidth();
float Top = touchBtn.getTop();
float Height = touchBtn.getHeight();
if(X > Left && X < (Left + Width))
if(Y > Top && Y < (Top + Height))
switch(touchBtn.getId())
{
case R.id.Button1:
mSoundManager.playSound(1);
break;
case R.id.Button2:
mSoundManager.playSound(2);
break;
}
}
return true;
}
return false;
}
});
Неработает...
Источник: Stack Overflow на русском