我正在尝试从我的设备 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);
查看此处(位图)和 此处(位图可绘制对象)了解更多信息。
我很简单
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);
}