перетащите / сдвиньте палец, чтобы выполнить кнопки onclick - мультитач - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть игра, состоящая из 7 кнопок, расположенных так, что 1 кнопка находится в центре, а остальные 6 вокруг нее. нажатие на кнопки приводит к изменению текста. использование клика действительно может быть громоздким для пользователя, поэтому я хотел бы добавить функциональность перетаскивания пальцем по кнопке для выполнения щелчка мышью .. что-то похожее на игры типа boggle, такие как -> https://market.android.com/details?id=com.ant.wordfind.client&feature=search_result

Я пытался реализовать то же самое, проблема в том, что, когда я перетаскиваю палец, регистрируется только одна кнопка, даже если я нажимаю другие кнопки, перетаскивая курсор -> касание других кнопок просто игнорируется. следующий код.

public boolean onTouch(View v, MotionEvent arg1) 
{ 
                if(arg1.getAction() ==MotionEvent.ACTION_MOVE) 
        { 
                Button b; 
                switch (v.getId()) 
        { 
        case R.id.b1: 
        case R.id.b2: 
        case R.id.b3: 
        case R.id.b4: 
        case R.id.b5: 
        case R.id.b6: 
        case R.id.b7: 
              b = (Button)findViewById(v.getId()); 
              b.performClick(); 
                break; 
        } 
     return true; 
        }

я что-то пропустил? что я хочу, это когда кнопки касаются .. они выполняют функцию onclick. только одно нажатие кнопки зарегистрировано остальные нажатия игнорируются
любая помощь будет оценена.

Я не хочу что-то вроде пианино / деки, где постоянно нажимается кнопка ... но только один щелчок, когда я провожу пальцем по кнопке Спасибо !

1 Ответ

0 голосов
/ 17 сентября 2011

На onTouch() не всегда следует использовать return true.Верните false, если вы хотите, чтобы последующие действия были захвачены.

onTouch () - Возвращает логическое значение, указывающее, использует ли ваш слушатель это событие.Важно то, что это событие может иметь несколько действий, которые следуют друг за другом.Таким образом, если вы возвращаете false при получении события действия вниз, вы указываете, что вы не использовали событие и также не заинтересованы в последующих действиях из этого события.Таким образом, вас не будут призывать к каким-либо другим действиям внутри события, таким как жест пальцем или событие возможного действия вверх.

Ссылка: http://developer.android.com/guide/topics/ui/ui-events.html

...