2011-12-14 10 views
1

私は、1.jpg、2.jpg、および56.jpgという名前の画像がたくさんあります。また、以前のリストアクティビティから選択された項目に依存する変数に_id値があります。私は画像を表示する次のコードを持っています。Androidは動的に画像を表示します

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.image1); 

私がしたいのは、_id値に対応する画像を動的に表示することです。

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.myID + ".jpg"); 

どうすればよいですか?

乾杯、

マイク。

答えて

2

はい、これを行うことができます。

ちょうどResouces.getIdentifier()を使用してください。 この実装は、それはあなたが出口がないために尋ねたリソースを意味します(RESOURCEIDが0でない場合は、idとを使用すると、常にチェックすること遅くなることに注意してください

例:。

View view = //... 
int number = //...      
int resId = getIdentifier("files_"+number, "drawable", "com.my.project.package"); 
view.setBackgroundResource(resId); 
+0

おかげでPedro、それは完璧に動作しました!そしてSander、あなたの例は2つ働いていました。私は横向きの思考が好きですが、150の画像があります。 –

0

私が知る限り、あなたはしません。私はもう少し前に同様の問題がありました。あなたはそれを見つけることができます。here. リソース名を動的に参照しようとすると、何らかの理由でAndroidがそれを気に入らないようです。私は最終的に、動的に参照したいすべてのリソースを配列に格納することで修正しました。

関連する問題