Проблема в OnTouchListener для ImageView - PullRequest
3 голосов
/ 25 октября 2011

Я установил OnTouchListener для просмотра изображений.Я хочу сделать два разных действия, когда пользователь нажимает на изображение, а также когда нажимает на изображение вверх.Но всегда я получаю событие нажатия вниз как (ACTION_DOWN), но если я использую кнопку вместо ImageView, то я могу и ACTION_DOWN, и ACTION_UP.Но я должен использовать ImageView, а не кнопку.Как добиться события ACTION_UP в ImageView

prevImage.setOnTouchListener(this); // prevImage is an image View

@Override
    public boolean onTouch(View view, MotionEvent arg1) {
        // TODO Auto-generated method stub

        Log.i("Wallpaper","...On touch ..." + arg1.getAction());
        if (arg1.getAction() == MotionEvent.ACTION_DOWN) {
            //set img1 as imagesource 
        } else if (arg1.getAction() == MotionEvent.ACTION_UP) {
            //set img2 as imagesource and parse data from url
        }

        return false;

}

Спасибо

Ответы [ 2 ]

6 голосов
/ 11 января 2012

Не знаю, уже слишком поздно или нет.

Вы можете сделать это, добавив это в свой imageView в своем XML-файле

android:clickable="true"

и вы можете использовать if и else, если вы уже сделали это там.

надеюсь, это поможет.

1 голос
/ 25 октября 2011

Пожалуйста, проверьте, запущен ли ACTION_CANCEL вместо ACTION_UP. Он может быть запущен вместо ACTION_UP, когда дело доходит до изображений.

[EDIT] Кроме того, вы должны вернуть true, если перехватываете событие ACTION_DOWN, чтобы ACTION_UP был уволен.

...