2016-03-05 78 views
1

我有很多圖像(超過200)與mipmap文件夾中的各種大小,我需要在ImageView中動態設置圖像...但如何做到這一點沒有「直接描述」在我的代碼R.mipmap 。* int文件? mipmap文件夾中有標誌圖像,我的對象有自己的字符串字段「flagCountry」,它由兩個字符組成。 mipmap文件夾中的標誌名稱由相同的字符組成。所以,這是一個麻煩 - 如何從flagCountry字符串變量動態設置setImageResource(R.mipmap.XXX)? 我在思考「反思」中的決定,但它怎麼可能? ))請幫助如何在沒有代碼中的「直接描述」的情況下動態更改mipmap文件夾中的圖像?

+0

檢查此鏈接可能有助於[鏈接](http://stackoverflow.com/questions/12274891/dynamically-getting-all-image-resource-id-in-an-array) –

回答

1

您可以使用Resources.getIdentifier()來找到給定名稱的資源的整數ID。這就像是Android資源的反射。

int id = getResources().getIdentifier("XXX", "drawable", getPackageName()); 

或沿着這些線。這假定代碼在一個活動中。然後你可以撥打setImageResource(id)這個ID。

+0

謝謝你,兄弟!你幫了我很多! )) – user3352926

+0

你好,我不能用它與mipmap。 – kemdo

1

正如Doug所說的,您可以使用Resources.getIdentifier()爲給定名稱的資源找到整數ID。但是你說你想從mipmap獲得資源。所以做一個簡單的改變。將單詞「drawable」更改爲「mipmap」,然後從mipmap中獲取圖像。更改後的代碼:

int id = getBaseContext()getResources().getIdentifier("XXX", "mipmap", getBaseContext().getPackageName()); 
image.setImageResource(id); 
相關問題