我有一个存储图片ID的对象。
public class MyObject {
private Integer imageId;
public MyObject(Integer imageId) {
this.imageId = imageId;
}
public Integer getImageId() {
return imageId;
}
}
我将使用它来设置imageview
imageView.setImageResource(myObject.getImageId());
但有时图像不是来自res文件夹
PackageManager pm;
pm = getPackageManager();
pm.getApplicationIcon("packagname");
但是我无法存储它,因为它返回drawable,而不是int
如何在Android中存储任何源图像?
答案 0 :(得分:0)
如果您的图片资源名为example.png
并且它位于您的一个可绘制文件夹中(在res中),则可以通过以下方式检索其ID:
int resId = R.drawable.example;
答案 1 :(得分:0)
您可以检查如果drawable是 null 然后使用 imageId &从资源文件夹中选择图像。如果return对象是drawable的实例,则将其保存在imageDd变量中的可绘制变量else整数实例中保存。
检查一下 公共类MyObject {
private Integer imageId;
private Drawable myDrawable;
public MyObject(final Integer imageId, final Drawable myDrawable) {
this.imageId = imageId;
this.myDrawable = myDrawable;
}
public Integer getImageId() {
return imageId;
}
public Integer getMyDrawable() {
return myDrawable;
}
}
在您的活动中: -
if(myObject.getMyDrawable()!= null){
imageView.setImageDrawable(myObject.getMyDrawable());
}
else {
imageView.setImageResource(myObject.getImageId());
}