0

アプリで約 200 以上の国名を取得しました。国ごとに 200 以上の旗のアイコンを取得しました。国旗アイコンの名前は国名と同じなので、次のようになります。

国名:ENG、アイコン名eng.png

国を選択するために、アプリでそれらのリストを作成したいと考えています。私は手動でレイアウトを構築したくなく、TextView ごとに 200 以上のアイコンを追加します...

私の質問は、どういうわけか動的に追加できますか?

このようなもの:

private void setIcon(String iconName)
{
     countryIcon.setBackgroundResource(R.drawable. /* and i need the magic here*/ +iconName )
}

それで、何とかparamでR.drawableを動的に参照できますか?

4

2 に答える 2

1

これを試して:

private void setIcon(String iconName) {
    Resources res = getResources();
    int imageResource = res.getIdentifier("drawable/" + iconName, null, getPackageName());

    Drawable image = res.getDrawable(imageResource);
    countryIcon.setBackgroundResource(image);
}
于 2012-05-04T07:15:21.540 に答える
0

パターンさえあれば、難しくありません。これが例です。これは、各行オブジェクトのフラグ ID に応じて ListView にフラグ イメージをロードするために行いました。language_id を取得したら、アイコンの名前と同じ language_KEY (文字列) を取得します。

   int ico_id, int visible=View.visible();
   String flag;
   Bitmap icona;

 flag= (MyWharehouse.getLangKey(language_id.get(position))).toLowerCase(); //get the image.png name
 ico_id = a.getResources().getIdentifier(flag, "drawable", a.getString(R.string.package_str));
 icona = BitmapFactory.decodeResource(a.getResources(), ico_id);

 ((ImageView)a.findViewById(R.id.im_lang_01)).setImageBitmap(icona);  //changing the image
于 2012-05-04T07:23:15.463 に答える