2015-04-22 3 views
0

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

img.setBackground(getBackgroundResource(R.drawable.image1); 

но в моем конкретном случае, у меня есть 4 изображения, и я хочу, чтобы переключаться при нажатии кнопки. Как мне это сделать?

+0

разместим ваш код, пожалуйста, так, что кто-то может изменить it.Writing весь код может держать их подальше от проводки. –

+0

Вы хотите, чтобы каждое изображение клика было изменено. – Destro

+1

см. Это http://stackoverflow.com/a/3491125/1697047 – Sree

ответ

0

, например, с целочисленным массивом и глобальной variabel:

private int[] drawables = {R.id.image1,R.id.image2,R.id.image3,R.id.image4}; 
    private int clicks = 0; 

    yourButton.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 

     if(clicks<drawables.length-1){ 
      clicks++; 

     } 
      else{ 

       clicks=0; 
     } 
     img.setImageResource(drawables[clicks]); 
     } 

    }); 

Если просто дать возможность проверить код, если работает правильно. На данный момент я не могу проверить, но это должно дать вам простую идею.

+0

Лучший способ: img.setBackground (drawables [clicks ++% drawables.length]); – Napolean

+0

Но это сбой после того, как закончились изображения –

+0

Что вы имеете в виду под "после окончания изображения"? – Opiatefuchs

0

Используйте этот

int counter=0; 

public void onClick(View v){ 

    imageView.setImageResource(image_array[counter]); 

    if(counter==3){ 
     counter=-1; 
    } 
    counter++; 
} 
0

Для этого попробуйте выполнить следующие шаги по одному в коде 1) сохранить изображения в массиве как

int imagearray[]=`{R.drawable.image1,R.drawable.image2....};` 

2) объявить переменную int count=0;

3) внутри кнопки на вашей кнопке попробуйте следующее:

count++; 
    imageView.setImageResource(imagearray[count]); 
0
final Button button1 = (Button) findViewById(R.id.button1_id); 
      button1.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        // Perform action on click 
        img.setBackground(getBackgroundResource(R.drawable.image1); 

       } 
      }); 

final Button button2 = (Button) findViewById(R.id.button2_id); 
      button2.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        // Perform action on click 

      img.setBackground(getBackgroundResource(R.drawable.image2); 

       } 
      }); 

final Button button3 = (Button) findViewById(R.id.button3_id); 
       button3.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         // Perform action on click 

      img.setBackground(getBackgroundResource(R.drawable.image3); 

        } 
       }); 
+0

OP хочет нажать только одну кнопку, а не на несколько кнопок. – Piyush

0

Предположим, что у вас есть 4 изображения в ArrayList, как,

a=new ArrayList<String>(); 

a.add("R.drawable.image1"); 
a.add("R.drawable.image2"); 
a.add("R.drawable.image3"); 
a.add("R.drawable.image4"); 

Button button1 = (Button) findViewById(R.id.button1_id); 
      button1.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        // Perform action on click 
      Collections.shuffle(a); 
      img.setBackground(getBackgroundResource(a.get(0)); 

       } 
      }); 
0
int clickCounter = 0; 
private int[] drawables = { 
    R.id.image1, 
    R.id.image2, 
    R.id.image3, 
    R.id.image4 
}; 

public void myOnClick(View v) { 
    clickCounter++; 
    switch (clickCounter) { 
     case 1: 
      img.setImageResource(drawables[clickcounter]); 
      break; 
     case 2: 
      img.setImageResource(drawables[clickcounter]); 
      break; 
     case n: 
      break; 
    } 
} 
Смежные вопросы