1. ホーム
  2. android

[解決済み] Android ImageView setImageResource in code

2022-03-15 15:07:15

質問

現在いる国の小さなアイコンを表示させたいimageViewがあります。国番号は取得できますが、問題はimageViewリソースを動的に変更することができないことです。画像ファイルはすべて小文字です(例:国コード=US、画像ファイル=us)

私のコード(countryCodeは現在のcountryCodeを大文字で表したもの)。

String lowerCountryCode = countryCode.toLowerCase();
String resource = "R.drawable." + lowerCountryCode;
img.setImageResource(resource);

さて、もちろんこれはうまくいきません。 setImageResource が必要です。 int どうすればいいのでしょうか?

どのように解決するのですか?

簡単な方法として、国名を int で使用されます。 setImageResource というメソッドがあります。

int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
setImageResource(id);

でも、本当はサポートしたい国ごとにフォルダーリソースを使い分けるようにしたほうがいいんです。