27

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

私のコード(countryCodeは大文字の現在のcountryCodeです):

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

もちろん、これは が必要なため機能しません。どうすればこれを行うことができますsetImageResourceint?

4

5 に答える 5

37

メソッドintで使用するために必要な国名をマップする簡単な方法の 1 つは、次のとおりです。setImageResource

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

ただし、サポートする国ごとに異なるフォルダー リソースを使用するようにしてください。

于 2012-09-28T19:54:07.363 に答える
34

This is how to set an image into ImageView using the setImageResource() method:

ImageView myImageView = (ImageView)v.findViewById(R.id.img_play);
// supossing to have an image called ic_play inside my drawables.
myImageView.setImageResource(R.drawable.ic_play);
于 2014-04-24T00:14:05.797 に答える
0

そのコードを使用します

ImageView[] ivCard = new ImageView[1];

@override    
protected void onCreate(Bundle savedInstanceState)  

ivCard[0]=(ImageView)findViewById(R.id.imageView1);
于 2013-01-05T08:56:55.600 に答える
-2

あなたはこれを試すことができます: -

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image_name));
于 2012-09-28T19:48:44.657 に答える