iv.setImageResource(R.drawable.icon);
此行變量是我安卓:通過對R.drawable.variableValue
我可以通過一個變量值,而不是圖標 工作好樣的,如果我有10個繪製的圖像,我想決定在運行時要顯示的圖像 我可以通過一個變量傳遞的價值,像
String variableValue = imageName;
iv.setImageResource(R.drawable.variableValue);
iv.setImageResource(R.drawable.icon);
此行變量是我安卓:通過對R.drawable.variableValue
我可以通過一個變量值,而不是圖標 工作好樣的,如果我有10個繪製的圖像,我想決定在運行時要顯示的圖像 我可以通過一個變量傳遞的價值,像
String variableValue = imageName;
iv.setImageResource(R.drawable.variableValue);
解決它你可以使用一個數組來定義可繪:
int[] images = new int[2];
images[0] = R.drawables.image1;
images[1] = R.drawables.image2;
然後可以使用此陣列在運行時設置一個圖像:
lv.setImageResource(images[i]);
哪裏是在這種情況下是0至點到第一圖像或1至點到所述陣列的所述第二圖像。
不,它不會那樣工作。
在您的第一線icon
是static final class R.drawable
的產生static final
構件,從而試圖串連起來就像是一個String
會給你一個編譯器錯誤。
但是你可以嘗試使用
iv.setImageURI(uri);
其中uri
是URI到你的形象,所以你可以在這裏使用的字符串值。
此外,根據api文檔,使用setImageBitmap
將是更好的解決方案:您應該根據您的資源來考慮它。
APIDocs:
public void setImageURI (Uri uri)
自:API等級1
設置此的ImageView來 指定的URI的內容。
這會在UI線程上執行位圖讀取和解碼 ,這可能會導致 延遲打嗝。如果這是一個問題, 請考慮使用 setImageDrawable(Drawable)或 setImageBitmap(Bitmap)和 來代替BitmapFactory。
參數
uri
圖像)的URI
Resources.getIdentifier(能解決你的問題。
String variableValue = imageName;
iv.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName()));
謝謝你爲我工作。 – 2014-06-22 05:36:51
工作就像魅力......要命:) ... 感謝您使我們的生活更輕鬆,而帶來更多的併發症弄成這已經是複雜的(ATLEAST對我來說)。 – 2011-04-24 04:04:52
對我來說,它只適用於R.drawables而不是R.drawables – 2017-10-15 00:48:44