簡體   English   中英

Android ImageView設置圖像源

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM