代码中的Android ImageView setImageResource

ari*_*n12 18 android imageview android-resources

我有一个imageView,我想显示你当前所在国家的一个小图标.我可以获得国家代码,但问题是我无法动态更改imageView资源.我的图片文件都是小写的(例如:国家代码= US,图片文件=我们)

我的代码(countryCode是大写字母的当前countryCode):

    String lowerCountryCode = countryCode.toLowerCase();
    String resource = "R.drawable." + lowerCountryCode;
    img.setImageResource(resource);
Run Code Online (Sandbox Code Playgroud)

现在,当然这不起作用因为setImageResource想要一个int,所以我该怎么做呢?提前致谢

Luk*_*rog 31

一个简单的方法来映射,你必须在该国名称int的使用setImageResource方法是:

int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName());
setImageResource(id);
Run Code Online (Sandbox Code Playgroud)

但您应该尝试为要支持的国家/地区使用不同的文件夹资源.


Jor*_*sys 25

这是ImageView使用setImageResource()方法设置图像的方法:

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);
Run Code Online (Sandbox Code Playgroud)