6

我正在尝试从我的设备 SD 卡加载一个 png 图像作为可绘制对象。我使用以下功能,但它不起作用:

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

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

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

4

2 回答 2

13

实际上有一个直接来自文件路径的 BitmapDrawable 构造函数。您使用的方法已被废弃。尝试:

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

如果这不起作用,请尝试获取位图并从中创建可绘制对象:

位图可以用decodeFile

你可以像这样使用它:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

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

将位图转换为可绘制使用

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

查看此处(位图)此处(位图可绘制对象)了解更多信息。

于 2012-09-29T13:20:36.760 回答
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);
}
于 2012-12-28T11:35:13.170 回答