Мультитач, кажется, не работает на всех 3 устройствах, которые я тестировал - PullRequest
1 голос
/ 26 июля 2011

Может кто-нибудь сказать мне, почему я ВСЕГДА получаю "1" из:

 public boolean onTouchEvent(MotionEvent event) {
      int i = event.getPointerCount();
      System.out.println(i);
 }

?Я тестировал приложение в Motorola Xoom - оно показывает «1», когда я кладу один палец, но ничего не делает, когда я кладу два пальца ..

Я даже добавил

<uses-feature android:name="android.hardware.touchscreen.multitouch"          android:required="true" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="true" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.jazzhand" android:required="true" />

в манифесте.xml: D - но безуспешно ..

1 Ответ

2 голосов
/ 26 июля 2011

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

Если вы этого еще не сделали, попробуйте вернуть значение true, чтобы система знала, что вы успешно обработали текущее TouchEvent, и можете перейти к следующему.

 public boolean onTouchEvent(MotionEvent event) {
      int i = event.getPointerCount();
      System.out.println(i);
      return true;
 }

Edit:

Попробуйте использовать onTouchListener вместо onTouchEvent. Примерно так:

View yourView = findViewById(R.id.id_of_your_view);
yourView.setOnTouchListener(new View.OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        int i = event.getPointerCount();
        System.out.println(i);
        return true;
    }
});
...