1

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

    String lowerCountryCode = countryCode.toLowerCase();
    String resource = "R.drawable." + lowerCountryCode;
    img.setImageResource(resource);
int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
setImageResource(id);

上記は私のコードです。

もちろん、set Image Resource は int を必要とするため、これは機能しません。どうすればこれを行うことができますか? 前もって感謝します

4

3 に答える 3

3

つまり、ある国と他の国で使用したいファイル (Drawable) の名前を知っているということです。

ImageView imgView=(ImageView)findViewById(R.id.imageView1);
int id = getResources().getIdentifier(lowerCountryCode.toLowerCase(), "drawable", getPackageName());
imgView.setImageDrawable(res.getDrawable(id));
于 2013-03-09T12:21:16.990 に答える
1

次のコードはうまく機能するはずです (フォルダーに名前の付いたファイルが実際にあると仮定しlowerCountryCodeますres/drawable/) 。

String lowerCountryCode = countryCode.toLowerCase();
int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
ivCard[0].setImageResource(id);
于 2013-03-09T12:13:11.177 に答える
0

私はそのコードを使用します....

ImageView[] ivCard = new ImageView[1];

@override    
protected void onCreate(Bundle savedInstanceState)  

ivCard[0]=(ImageView)findViewById(R.id.imageView1);
于 2013-03-09T12:10:30.477 に答える