[英]numbered images on setImageResource
我正在使用Android应用程序,并且有以下代码:
int digit = 0;
imageButton = (ImageView)findViewById(R.id.btn1);
numberedImage = (ImageView)findViewById(R.id.Digit1);
imageButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
digit++;
numberedImage.setImageResource(R.drawable.number + ((digit) + 1));
}
});
以及一些名为number1
, number2
等等的可绘制文件夹中的图像,等等……此代码运行正常,然后突然不起作用了。
我希望ImageView
每次单击都更改图像,这让我感到完全困惑,是因为该代码运行得很好(即使某种方式可能是错误的,我不是程序员),并且所有这些突然之间,不再...
之后,我也尝试使用数组和循环,但是遇到了相同的错误:
“数字无法解析或不是字段”
这以前不是问题。
你有些误会。 但是幸运的是(或不幸的是)您的代码给您带来了一些成功的结果,而您的误解更加坚定了。
ImageView.setImageResource
将资源ID作为参数。 不是图片名称。 因此,当您向资源ID添加数字时,它会设置下一个ID的图像。 由于您的图片名称是连续的,因此ID也是连续的,这就是您获得成功结果的原因。 但这并不保证您将始终做到这一点。
我猜以前是可行的,因为您的资源中有一个名为数字的图像。 但是现在将其删除。
拟议的解决方案
Resources res = getResources();
String mDrawableName = "number" + digit + 1; // be sure those exist
int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName()); numberedImage.setImageResource(resId);
请使用
for(int i=0;i<imageCount;i++){
int imageResId = getResources().getIdentifier("image" + i, "id", YourActivity.this.getPackageName());
numberedImage.setImageResource(imageResId);
}
为了通过资源名称访问图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.