如何存储res图像和app图标图像?

时间:2015-06-28 17:53:03

标签: android

我有一个存储图片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中存储任何源图像?

2 个答案:

答案 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());
}