通过名称获取可绘制图像
Get drawable image by its name
我有一个模型,它有特定的国旗:
public int getCountryFlag() {
return countryFlag;
}
public void setCountryFlag(int countryFlag) {
this.countryFlag = countryFlag;
}
我正在从 API 获取数据。 API 有一个值国家代码,这可能是这样的:"country":"de","created_at":"2018-08-08 09:17:43","updated_at":"2018-08-08 09:17:43"
我将国旗命名为国家代码:
de
se
us
....
如何获取图像的确切 resourceID 以将其与模型相关联?
我正在使用 RecyclerView。
我试过类似的方法:
int resID = getResources().getIdentifier(object.getString("country"), "drawable", getPackageName());
model.setCountryFlag(R.drawable.sy);
虽然那没有用!
如果您确定 api
字符串的格式,请执行以下操作:
String country = api.trim().split(",")[0].split(":")[1].replaceAll("\"", "");
或
String country = api.trim().substring(11, 13);
然后:
int resID = getResources().getIdentifier(country, "drawable", getPackageName());
model.setCountryFlag(resID);
你可以通过Resource Id名称获取flag
int drawableResourceId = this.getResources().getIdentifier("de", "drawable", this.getPackageName());
你也可以查看
How to get a resource id with a known resource name?
我有一个模型,它有特定的国旗:
public int getCountryFlag() {
return countryFlag;
}
public void setCountryFlag(int countryFlag) {
this.countryFlag = countryFlag;
}
我正在从 API 获取数据。 API 有一个值国家代码,这可能是这样的:"country":"de","created_at":"2018-08-08 09:17:43","updated_at":"2018-08-08 09:17:43"
我将国旗命名为国家代码:
de
se
us
....
如何获取图像的确切 resourceID 以将其与模型相关联? 我正在使用 RecyclerView。
我试过类似的方法:
int resID = getResources().getIdentifier(object.getString("country"), "drawable", getPackageName());
model.setCountryFlag(R.drawable.sy);
虽然那没有用!
如果您确定 api
字符串的格式,请执行以下操作:
String country = api.trim().split(",")[0].split(":")[1].replaceAll("\"", "");
或
String country = api.trim().substring(11, 13);
然后:
int resID = getResources().getIdentifier(country, "drawable", getPackageName());
model.setCountryFlag(resID);
你可以通过Resource Id名称获取flag
int drawableResourceId = this.getResources().getIdentifier("de", "drawable", this.getPackageName());
你也可以查看 How to get a resource id with a known resource name?