[英]Android ImageView setting source of image
我正在嘗試設置圖像的來源,但是我收到了錯誤。
String test1 = pref.getString("test", "ERROR");
String drawable1 = "R.drawable."+test1;
myImage.setImageResource(drawable1);
我試過設置int drawable1 = "R.drawable."+test1;
,但它仍然無法正常工作。 我知道它是不匹配的類型,但我似乎無法找到一種方法來完成它。
看來你可以進一步解決這個問題,並說你如何使這項工作?
String drawable1 = "R.drawable.myImage";
myImage.setImageResource(drawable1);
有任何想法嗎?
我試過設置
int drawable1 = "R.drawable."+test1;
,但它仍然無法正常工作。
您需要使用getIdentifier()
從字符串中正確構建資源ID:
int drawable1 = getResources().getIdentifier(test1, "drawable", getPackageName());
(現在還有另外兩個答案表明同樣的事情......我是否錯過了某些內容,或者他們只是想重復已經說過的內容?)
請注意,如果您的Image很大或在加載setImageResources()
上的文檔時導致明顯的延遲,則有其他建議:
這會在UI線程上進行Bitmap讀取和解碼,這會導致延遲打嗝。 如果這是一個問題,請考慮使用
setImageDrawable(android.graphics.drawable.Drawable)
或setImageBitmap(android.graphics.Bitmap)
和BitmapFactory
。
假設您有一個context
(如果代碼在一個活動中,請使用this
context
)
int resId = context.getResources().getIdentifier(test1 , "drawable", cw.getPackageName());
myImage.setImageResource(resId);
采用
int drawable1 = getResources().getIdentifier(test1, "drawable", getPackageName();
要了解更多如何按名稱獲取資源,請參閱此鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.