2011-10-19 87 views
2

我想在我的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)); 

回答

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

試試這個,如果你想獲得一個可繪製。也正如kcoppock所說的,只是使用j。

+2

是,您需要指定資源的類型。像在'R.drawable.hangman1'中一樣:類型是'drawable'而不是'imageView'。 – Peterdk

4

因爲你試圖傳入一個Drawable。 getDrawable(),如其名稱所示,返回一個Drawable對象。 setImageResource需要一個資源ID,這是getIdentifier將返回的內容。你應該只通過jsetImageResource()。如他所說,你也應該使用Yashwanth的回答。 :)

(TEAMWORK!)

+1

或者調用setImageDrawable() – user999717

+0

我已經試過IV.setImageResource(j);錯誤消失,但圖像不會改變.. :( – mysterious

2

結合上述兩種解決方案,並獲得成功的me..here是代碼.. DNT知道答案,我應該接受..

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

哈哈,接受Yashwanth's,他將我的合併到他的。:) – kcoppock

+1

他也擊敗了我16秒。 – kcoppock

+0

+1 16秒..lols ...好吧m會接受他的答案..謝謝:) – mysterious