3 回答
TA贡献2016条经验 获得超9个赞
请注意,您的方法几乎总是错误的处理方式(最好是将上下文传递给使用drawable的对象本身,而不是在Context某个地方保持静态)。
鉴于此,如果要进行动态可绘制加载,则可以使用getIdentifier:
Resources resources = context.getResources();
final int resourceId = resources.getIdentifier(name, "drawable",
context.getPackageName());
return resources.getDrawable(resourceId);
TA贡献1805条经验 获得超10个赞
你可以做这样的事情。
public static Drawable getDrawable(String name) {
Context context = YourApplication.getContext();
int resourceId = context.getResources().getIdentifier(name, "drawable", YourApplication.getContext().getPackageName());
return context.getResources().getDrawable(resourceId);
}
为了从任何地方访问上下文,您可以扩展Application类。
public class YourApplication extends Application {
private static YourApplication instance;
public YourApplication() {
instance = this;
}
public static Context getContext() {
return instance;
}
}
并将其映射到您的Manifest application标签中
<application
android:name=".YourApplication"
....
TA贡献1818条经验 获得超7个赞
修改图片内容:
ImageView image = (ImageView)view.findViewById(R.id.imagenElement);
int resourceImage = activity.getResources().getIdentifier(element.getImageName(), "drawable", activity.getPackageName());
image.setImageResource(resourceImage);
- 3 回答
- 0 关注
- 518 浏览
添加回答
举报