setOnTouchListener时以编程方式更改图像

时间:2013-10-22 11:26:04

标签: android onclick imageview

当我点击屏幕时,我需要做一个图像转换器。

有了这个:

image.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    image.setImageResource(R.drawable.image_1);
                    return false;
                }
            });

我有另外的图像,5或6,当我点击上面的代码图像时,我想换到另一个图像。如何点击屏幕将图像视图更改为下一个?

如果我有一个计数器,我可以这样做,但我认为这不是最好的解决方案。

2 个答案:

答案 0 :(得分:1)

使用此代码:

int clicked = 0 ;

    images.setOnTouchListener(new View.OnTouchListener() {

     @Override
     public boolean onTouch(View view, MotionEvent motionEvent) {
       switch (MotionEventCompat.getActionMasked(motionEvent)) {
            case MotionEvent.ACTION_UP:
                        clicked++;
                        break;
            case MotionEvent.ACTION_DOWN:

                        if(clicked == 1){
                            images.setImageResource(R.drawable.images_1);
                        }else if(clicked == 2){
                            images.setImageResource(R.drawable.images_2);
                        }else if(clicked == 3){
                            images.setImageResource(R.drawable.images_3);
                        }else if(clicked == 4){
                            images.setImageResource(R.drawable.images_4);
                        }else if(clicked == 5){
                            dialog.dismiss();
                        }
                        return true;
                       break;
          }
     }
}

答案 1 :(得分:0)

我正在做下一个,但我不知道如果有另一个可能性:

images.setOnTouchListener(new View.OnTouchListener() {
                int clicked = 1;
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    if(clicked == 1){
                        images.setImageResource(R.drawable.images_1);
                    }else if(clicked == 2){
                        images.setImageResource(R.drawable.images_2);
                    }else if(clicked == 3){
                        images.setImageResource(R.drawable.images_3);
                    }else if(clicked == 4){
                        images.setImageResource(R.drawable.images_4);
                    }else if(clicked == 5){
                        dialog.dismiss();
                    }
                    clicked++;
                    return false;
                }
            });