我正在尝试在我的Android应用程序中使图像动态化。在其他帖子的帮助下,我写了这段代码,但我无法设置图像资源。这是我的代码。
// get image whose source i want to change..
ImageView IV = (ImageView) findViewById(R.id.imageView1);
// x for 1,2,3.. hangman1.png,hangman2.png and so on image are located
// under res/drawable-mdpi
int j = getResources().getIdentifier("hangman"+x, "imageView", getPackageName());
// here i get errork, The method setImageResource(int) in the type ImageView
// is not applicable for the arguments (Drawable)
IV.setImageResource( getResources().getDrawable(j) );
答案 0 :(得分:12)
int j = getResources().getIdentifier("hangman"+x, "drawable", getPackageName());
尝试这个,如果你想获得一个可绘制的。而且正如kcoppock所说,只需使用j。
答案 1 :(得分:4)
因为您正在尝试传入Drawable。 getDrawable(),正如其名称所示,返回一个Drawable对象。 setImageResource获取资源ID,这是getIdentifier将返回的内容。您应该将j
传递给setImageResource()
。
(TEAMWORK!)
答案 2 :(得分:2)
结合上述两种解决方案对我来说都有诀窍......其中有代码.. 知道我应该接受哪个答案..
ImageView IV = (ImageView) findViewById(R.id.imageView1);
int j = getResources().getIdentifier("hangman"+x, "drawable", getPackageName());
IV.setImageResource( j );
答案 3 :(得分:0)
,使用app:src而不是android:background,并从活动文件中使用:
setImageDrawable(getRessource().getDrawable(R.drawable.yourRessource));