Android: как изменить изображение при каждом касании - PullRequest
0 голосов
/ 23 сентября 2011

Я хотел бы изменить изображение каждый раз, когда пользователь касается экрана. Я бы хотел, чтобы пользователь нажимал на экран, и изображение каждый раз менялось, а при 5-м касании оно возвращалось к исходному изображению с добавленным текстом.

Я смотрел на

Как настроить ImageButton на изменение только при касании его пальцем

Я пробовал как IUevents, так и StateListdrawable. Я не мог понять, как на самом деле изменить изображение после каждого прикосновения (в любом месте экрана).

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

А почему вы не можете использовать обычный ImageView?Сделайте это:

ArrayList<Integer> picList = new ArrayList<Integer>(); 
// populate the list with the int value of the pictures in drawable.
picList.add(R.drawable.apple);
picList.add(R.drawable.horse);
//etc
int touches = 0;
int loop = 0;
ImageView picture = (ImageView) findViewById(R.id.your_picture);
picture.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           if (touches < 4)
                v.setBackgroundDrawable(picList.get(touches));
                touches++;
           } else {
                touches = 0;
                loop = 1;
                v.setBackgroundDrawable(picList.get(touches));
           }
           if (loop = 1){
           // Create a TextView and set the text or make it in the xml with Visible="Gone" and make is visible here.
           }
    });
1 голос
/ 23 сентября 2011

вам нужно создать класс Custom, который расширяет ImageView, теперь отображает это изображение на весь экран

> First store the path/location of images into an array/list etc.
> In custom class implement the onTouch event.
> create the counter object in this custom class.
> now in onTouch check in down event that check the counter value with array size if counter==array.length()-1 then set counter as 0 otherwise increment in counter object.
> now get the path of the image and set into the imageview as background
...