2010-11-23 13 views
5

私のドロウアブルフォルダに100以上の(国旗の)イメージのデータベースがあります。AndroidのImageViewにイメージを動的にロードする

今現在あなたがいる国の国旗をImageViewに表示したいと思います。

私はString country_variable = address.getCountryCode();

で国を取得し、あなたがすべてのR.drawable.country_variable wont'tの仕事を知っているように、コンパイラがでcountry_variableという名前の画像を見つけることができないので、私はflag.setImageDrawable(getResources().getDrawable(R.drawable.country_variable));

で画像を設定ドロウアブルフォルダ

これを行うにはどのような方法が最適ですか?

+0

なぜあなたはその国のコードで各drawableの名前を付けていないのですか?ハッシュマップを使用します。 – techiServices

+0

しました。フラグは "fr.png"、 "de.png"、 "uk.png"などと表示されます。 – Galip

+0

自分自身を正しく説明できませんでした。 hashmap ここで、intはR.drawableです。 techiServices

答えて

12

あなたはgetResourcesを使用することができるはずです()getIdentifier()リソース名でIDを取得します。何かのように:

flag.setImageDrawable(getResources().getDrawable(getResources().getIdentifier("drawable/" + country_variable, "drawable", getPackageName())); 
+1

Tnx!できます! .toLowerCase()を追加する必要がありました。しかし、。 getCountryCode()は2つの大文字を返し、アンドロイドはドロウアブルマップに大文字のファイル名を許可しません。 – Galip

6

はこれを試してみてください:

flag.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(country_variable, "drawable", getPackageName())); 
+1

Tnx!できます! .toLowerCase()を追加する必要がありました。しかし、。 getCountryCode()は2つの大文字を返し、アンドロイドはドロウアブルマップに大文字のファイル名を許可しません。 – Galip

+0

それはあなたのために働いてうれしいよ:) – xil3

関連する問題