我的項目中有一些圖片。圖像的名稱存儲在一個字符串,我想setImageResource(R.drawable。「.....」);與圖像名稱的字符串,但問題是,這是行不通的。如何替換R.drawable。「someString」
我該怎麼做?
我的項目中有一些圖片。圖像的名稱存儲在一個字符串,我想setImageResource(R.drawable。「.....」);與圖像名稱的字符串,但問題是,這是行不通的。如何替換R.drawable。「someString」
我該怎麼做?
這不是一個正確的語法,你必須得到編譯器時間錯誤,在改變圖像資源之前你必須知道,所有資源都提供了一個id,這些id存儲在R.java文件中。 ID存儲成整數格式,並在你的應用程序,你可以通過這些標識,獲取所有這些資源不上名字,所以你需要先獲取資源的ID,通過:
String mDrawableName = "myimg";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
,然後使用該渣油。
太好了,謝謝。 – 2012-02-28 12:11:04
使用
getResources().getIdentifier("NAME_OF_IMAGE", "drawable", context.getPackageName())
太好了,謝謝。 – 2012-02-28 12:11:21
看到這個thread。它應該幫助你。基本上你需要得到標識符,然後使用setImageResource
加載。
未知的downvoter,我用我的答案做了什麼壞事? – 2012-02-28 12:11:03
太好了,謝謝。 – 2012-02-28 12:11:30
我已經給你一個積極的投票。 – 2012-02-28 12:12:08
public int getIdentifier(String name,String defType,String defPackage);
名稱 - 圖像
DEFTYPE的名字 - 這將是繪製你的情況
defPackage - 您的應用程序的默認包(我認爲你可以在此活動使用getPackage())
試這
String uri = "NAME";
// int imageResource = R.drawable.icon;
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
ImageView imageView = (ImageView) findViewById(R.id.myImageView);
Drawable image = getResources().getDrawable(imageResource);
imageView.setImageDrawable(image);
我知道它通過將圖像從'drawable'移動到'raw'文件夾並訪問字符串值如下所示。 如果'res'目錄下沒有'raw'文件夾,請右鍵單擊res-> new-> Android資源目錄,並在resourcetype下拉菜單中選擇'raw'。
String avatar = ("android.resource://" + "yourPackageName/" + String.valueOf(R.raw.robot_blue));
圖像在哪裏? – Deva 2012-02-28 11:55:17
在我的項目的drawable中。 – 2012-02-28 11:56:12
它不是一個在Android的方式工作,你必須存儲圖像繪製和訪問它通過R.drawable.image – Newts 2012-02-28 11:56:18