我正在尝试从设备sd卡加载png图像作为可绘制图像。
我使用以下功能,但不起作用:

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

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

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

最佳答案

实际上,直接在文件路径中有一个BitmapDrawable构造函数。您正在使用的方法已被描述。尝试:

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

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

可以使用decodeFile创建位图

您可以像这样使用它:
Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

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

将位图转换为可绘制的用途
Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap);

查看Here (Bitmaps)Here (Bitmap Drawables) 了解更多信息。

10-07 15:43