通过java在android中更改imageView上的图像

时间:2015-06-23 14:23:03

标签: java android

我在活动中有一个imageView按钮,10个图片从stage1到stage9命名。

我需要你帮助解决一些问题

我想使用按钮点击将imageView上的图片更改为下一张图片。

我的意思是,我想按下按钮,图像视图显示stage2图像,我再次按下按钮,将显示stage3图片。

我使用计数器变量来计算点击次数,然后运行,如果要查看下一张图片,那么它太长,并且不可能有更多或更少的图片。

我想知道有没有办法做到这一点,如果可能请告诉我如何。

由于

代码

private void changeImage(int counter) {
    if (counter == 1) {
        image.setImageResource(R.drawable.stage2);
    } else if (counter == 2) {
        image.setImageResource(R.drawable.stage3);
    } else if (counter == 3) {
        image.setImageResource(R.drawable.stage4);
    } else if (counter == 4) {
        image.setImageResource(R.drawable.stage5);
    } else if (counter == 5) {
        image.setImageResource(R.drawable.stage6);
    } else if (counter == 6) {
        image.setImageResource(R.drawable.stage7);
    } else if (counter == 7) {
        image.setImageResource(R.drawable.stage8);
    } else if (counter == 8) {
        image.setImageResource(R.drawable.stage9);
    }       
}

贝司风地说这是我现在正在使用的代码。

它有效,但如果我想这样做更有活力。

2 个答案:

答案 0 :(得分:1)

只需按名称获取资源ID,使用like,

private void changeImage(int counter) {

     if(counter >= 1 && counter <= 9) // Always check counter value before accessing as resource id
     {
      int counterValue = counter+1;  
      int resourceId = Resources.getSystem().getIdentifier("stage"+counterValue, "drawable",  this.getPackageName()); // Use application context to get package name
      image.setImageResource(resourceId);
     }
} 

答案 1 :(得分:1)

您需要告诉虚拟机更新 - &gt; &#39; invalide()&#39;

或者使用Picasso,

Picasso.with(Statics.context).load(R.drawable.stageX).error(R.drawable.error_img).resize(width, height).priority(Priority.HIGH).into(image);