点击按钮更改图像

时间:2014-04-15 08:52:15

标签: android image

我的应用中有3张图片。图像是数字。所有3张图像上显示的最大数量将为9.首先,本机位置的图像为1,其余图像为0.点击“下一步”按钮,显示下一个数字,即2。以这种方式进行直到最后一个数字9,然后在下一次单击时,单位的位置变为0并且十位的位置变为1,依此类推将持续到999.还有一个前一个按钮,它将反转下一个按钮的状态并且将将数字减少一位数。我可以通过使用if else条件但无法对前一个按钮执行相同的操作来实现下一个按钮条件。请帮忙。

int image1 = 2;
int image10 = 0;
int image100 = 0;
int max = 10;

final int [] images = {
            R.drawable.num00,R.drawable.num_0, R.drawable.num1, R.drawable.num2, R.drawable.num3, R.drawable.num4,
            R.drawable.num5, R.drawable.num6, R.drawable.num7, R.drawable.num8, R.drawable.num9
    };

    ImageButton next = (ImageButton)findViewById(R.id.imageButton1);

next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if((image1==max)&&(image10<max))                //for value with 9, 19... to increment
            {
                   image1=1;
                   if (image10==0)
                   { 
                       image10=2;                      
                   }
                   else 
                   {
                       image10++;
                   }

                   img1.setImageResource(images[image1]);
                   img2.setImageResource(images[image10]);
            }


            else if((image1==max)&&(image10==max)&&(image100>=0)&&(image100<=10))               //for value with 9 in 1st block to increment
            {
                   image1=1;
                   image10=1;
                   if (image100==0)
                   { 
                       image100=2;                     
                   }
                   else 
                   {
                       image100++;
                   }

                   img1.setImageResource(images[image1]);
                   img2.setImageResource(images[image10]);
                   img3.setImageResource(images[image100]);
            }
            else if (image100<=10)                      //for value below 9 in 1st block to increment
            {
                image1++;
                img1.setImageResource(images[image1]);
            }
}
    });

这里,image1是图像在单位的位置,image10在十位,而image100在百位。

1 个答案:

答案 0 :(得分:0)

实施可以进行很多优化。

为什么你不能使用如下的简单数字。

int number = 0;

下一个按钮:

if(number <1000){
number++
updateImages()
}

上一个按钮:

if(number > 0){
number--
updateImages()
}

对上述/下一个按钮执行上述操作后,只需编写如下方法。

updateImages(){
unitsPlace = number%10;
tensPlace = ((number/10)%10);
hundredsPlace = ((number/100)%10);
img1.setImageResource(images[hundredsPlace]);
img2.setImageResource(images[tensPlace]);
img3.setImageResource(images[unitsPlace]);
}

多数民众赞成。