我正在尝试从我的设备SD卡中加载png图像作为drawable。 我使用以下函数,但它不起作用:
public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}
图像路径为:mnt / sdcard / MyFolder / image.png
当我尝试调用该方法时应用程序崩溃了,我该如何加载位于我的SD卡中的png图像并将其转换为Drawable对象?
答案 0 :(得分:13)
实际上直接来自文件路径的BitmapDrawable构造函数。您正在使用的方法已被删除。尝试:
Drawable myDrawable = new BitmapDrawable(getResources(), pathName);
如果这不起作用,请尝试获取位图并从中创建一个drawable:
可以使用decodeFile
你可以像这样使用它:
Bitmap myBitmap = BitmapFactory.decodeFile(pathName);
然后你可以使用位图进行绘图等。
将Bitmap转换为可绘制用途
Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap);
答案 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);
}