动态图像源android

时间:2011-10-19 19:39:47

标签: android

我正在尝试在我的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) );

4 个答案:

答案 0 :(得分:12)

int j = getResources().getIdentifier("hangman"+x, "drawable", getPackageName());

尝试这个,如果你想获得一个可绘制的。而且正如kcoppock所说,只需使用j。

答案 1 :(得分:4)

因为您正在尝试传入Drawable。 getDrawable(),正如其名称所示,返回一个Drawable对象。 setImageResource获取资源ID,这是getIdentifier将返回的内容。您应该将j传递给setImageResource()

编辑:嘿,你也应该使用Yashwanth的答案,正如他所说。 :)

(TEAMWORK!)

答案 2 :(得分:2)

结合上述两种解决方案对我来说都有诀窍......其中有代码.. 知道我应该接受哪个答案..

ImageView IV = (ImageView) findViewById(R.id.imageView1);
int j = getResources().getIdentifier("hangman"+x, "drawable", getPackageName());
IV.setImageResource( j );

答案 3 :(得分:0)

从您的xml文件

,使用app:src而不是android:background,并从活动文件中使用:

setImageDrawable(getRessource().getDrawable(R.drawable.yourRessource));