在ImageView的OnTouchListener中出现问题

时间:2011-10-25 13:24:07

标签: android imageview ontouchlistener

我已将OnTouchListener设置为图像视图。我想在用户按下图像时以及按下图像时执行两种不同的操作。但总是我按下事件为(ACTION_DOWN),但如果我使用按钮而不是ImageView,那么我可以同时使用ACTION_DOWN和ACTION_UP。但我必须使用ImageView而不是Button。如何在ImageView中实现ACTION_UP事件

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 个答案:

答案 0 :(得分:6)

不知道这是否太晚。

您可以将其添加到xml文件中的imageView

android:clickable="true"

你可以使用if和else,如果你已经在那里做过。

希望这会有所帮助。

答案 1 :(得分:1)

请检查ACTION_CANCEL是否被触发而不是ACTION_UP。当谈到图像时,它可能会被触发而不是ACTION_UP。

[编辑]此外,如果你拦截ACTION_DOWN事件,你必须返回true,以便ACTION_UP被解雇。