从SD卡加载drawable

时间:2012-09-29 12:42:34

标签: java android path drawable sd-card

我正在尝试从我的设备SD卡中加载png图像作为drawable。 我使用以下函数,但它不起作用:

public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}

图像路径为:mnt / sdcard / MyFolder / image.png

当我尝试调用该方法时应用程序崩溃了,我该如何加载位于我的SD卡中的png图像并将其转换为Drawable对象?

2 个答案:

答案 0 :(得分:13)

实际上直接来自文件路径的BitmapDrawable构造函数。您正在使用的方法已被删除。尝试:

Drawable myDrawable = new BitmapDrawable(getResources(), pathName);

如果这不起作用,请尝试获取位图并从中创建一个drawable:

可以使用decodeFile

创建位图

你可以像这样使用它:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

然后你可以使用位图进行绘图等。

将Bitmap转换为可绘制用途

Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap);

查看Here (Bitmaps)Here (Bitmap Drawables) 了解详情。

答案 1 :(得分:0)

我很简单就像那样

public Drawable getDrawableFromPath(String filePath) {
    Bitmap bitmap = BitmapFactory.decodeFile(filePath);
    //Here you can make logic for decode bitmap for ignore oom error.
    return new BitmapDrawable(bitmap);
}