使用for循环更改图像

时间:2014-04-30 10:10:49

标签: android image loops

如果单击一个按钮,如何使用for循环将图像更改为数组中的下一个图像。目前我在点击方法中有这个。

 int[] Pics = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

 for (int i=0; i<Pics.length; i++){

     mainpic.setImageResource(Pics[i]);

 }

问题是当点击下一个按钮时,它只会停留在第一个图像上,或直接进入最后一个图像。

3 个答案:

答案 0 :(得分:0)

我完全不理解......当你点击下一张图片的下一个按钮时,你写道它不起作用......但是什么不起作用?这是 for loop ...它将循环到数组的末尾并将图像设置为其中的最后一个图像 ...您需要定义一个类变量如

int[] Pics = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};
int i = 0;
mainpic.setImageResource(Pics[i]);

然后在下一个按钮 onClick 方法..

 i++;
 if(i >=3) {
   i = 0;
 }
 mainpic.setImageResource(Pics[i]);

答案 1 :(得分:0)

尝试这个你缺少新代码[]

的代码块
int[] Pics = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

并在循环内部使用

int i = 0;

onClick 方法

mainpic.setImageResource(Pics[i]);
i++

答案 2 :(得分:0)

你不需要为此循环。处理onClick()中的图像更改:

public void onClick(View view)
{
      if (view.getId() == R.id.<ButtonId>)
      {
           mainpic.setImageResource(Pics[currentImageIndex]);
           currentImageIndex = (currentImageIndex + 1) % Pics.Length;
      }
}

PS:currentImageIndex是一个类变量。 %操作允许您以循环方式更改图像。