2014-04-21 31 views
2

我正在開發一個小型的在線購物應用程序,需要有很多項目圖像,我有一個web服務,它給出了android drawable-mdpi中存在的圖像路徑,我的問題在這裏我想這個代碼來獲取imageresource ID,但它總是給我0圖片資源在Android中給出0

String uri = "@drawable/bangle1.png"; 
int imageResource = getResources().getIdentifier(uri, null, getPackageName()); 

有沒有什麼方法,讓資源ID,這樣我可以用它來繪製一樣:

Drawable res = getResources().getDrawable(imageResource); 

我嘗試了谷歌搜索,但大多數人建議上述方法,這讓我總是0值。任何人請在這裏幫忙。

+0

如果它已經在drawables文件夾中,爲什麼不使用'int imageResource = R.drawable.bangle1;'? – dharms

+0

@dcharms我需要從webservice獲得響應,哪個圖像顯示在活動列表視圖中。這就是爲什麼我在嘗試。 –

+0

我明白了。對不起,我誤解了你是如何確定drawable的。 – dharms

回答

0

感謝所有,即使我嘗試了其他人的所有參考答案,它並沒有解決,但我在這裏找到最後解決方案:How do I get the resource id of an image if I know its name?

它的工作神奇:

String mDrawableName = "bangle1"; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

這裏,myDrawableName不應該有擴展名,如: 「巴紐」。謝謝大家。

1

將圖片放入/ assets /文件夾並不使用可繪製資源會更好。由於Note: use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name.

如果你還是想用你的方法試試 getResources().getIdentifier("bangle1.png", "drawable", getPackageName());

+0

嗨感謝您的回覆,我會試試這個... –

+0

嗨嘗試,超過一,給了我相同的0值。 –

0

你的問題是你正在寫圖像名稱及其後綴。嘗試使用此代碼:

int imageResource = getResources().getIdentifier(
    "your image name without suffix(bangle1)", "drawable", YourActivtyName.this); 
+0

我已經回答了我的問題,下面在這之前,請看看。任何其他獲取圖像資源ID的方式都將被接受。 –