我在活动中有一个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);
}
}
贝司风地说这是我现在正在使用的代码。
它有效,但如果我想这样做更有活力。
答案 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);