Определение касаемого элемента

Рейтинг: 1Ответов: 3Опубликовано: 13.03.2011

Старую проблему с несколькими почти решил, но осталось вот что:

@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;
    }
});

Неработает...

Ответы

Ответов пока нет.