Android - обнаружение проблем на TouchListener - PullRequest
3 голосов
/ 07 апреля 2011

Итак, к моей активности применен настраиваемый способ просмотра.

Я пытаюсь реализовать прослушивание движения для просмотра, чтобы можно было обнаружить различные сенсорные события в разных местах.Однако я, кажется, даже не получаю ответ от Touch Down.

Вот соответствующая часть моего кода:

public class CustomDrawableView extends View implements OnTouchListener
{      
    public CustomDrawableView(Context context)
    {
        super(context);         
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        mDrawBackGround(canvas);
        mDrawHexPanel(canvas);
        mDrawHuePanel(canvas);
        mDrawGreyScaleHexPanel(canvas);
        mDrawHuePointer(canvas);
    }

    @Override
    public boolean onTouch(View CustomDrawableView, MotionEvent event) 
    {
        float touchX = event.getX();
        float touchY = event.getY();

        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:


                    pointerTouch=true;
                    cpRed=255;
                    cpGreen=108;
                    cpBlue=0;                           
                    invalidate();                       
                    break;
        }
        return true;
    }

Так что я делаю не так?

Ответы [ 3 ]

1 голос
/ 07 апреля 2011

Чтобы получить события мультитач, вы должны использовать методы getX (указатель int) и getY (указатель int), который возвращает положение каждой точки касания.

Вы можете узнать, сколько пальцев на экране, с помощью метода getPointerCount ().

(Методы MotionEvent)

Кроме того, ACTION_DOWN срабатывают только при первом касании пальцем, при его перетаскивании следующие события будут ACTION_MOVE.

Вы переопределяете onTouch (View arg0, MotionEvent arg1), но чтобы прослушивать сенсорные события из создаваемого вами представления, вы должны переопределить onTouchEvent (MotionEvent evt).

0 голосов
/ 07 апреля 2011

Добавление регистрации слушателя в конструктор класса CustomDrawableView

0 голосов
/ 07 апреля 2011

В данный момент ваш класс реализует только интерфейс.Вы должны зарегистрировать OnTouchListener в своем представлении, вызвав это. setOnLongClickListener (this) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...