Java 加载可从sd卡提取

Java 加载可从sd卡提取,java,android,path,drawable,sd-card,Java,Android,Path,Drawable,Sd Card,我正在尝试从我的设备sd卡加载一个png图像作为可绘制图像。 我使用了以下功能,但不起作用: public Drawable getDrawable() { return new BitmapDrawable(imagePath); } 图像路径为:mnt/sdcard/MyFolder/image.png 当我尝试调用该方法时,应用程序崩溃了,我应该如何加载SD卡中的png图像并将其转换为可绘制对象?实际上,直接从文件路径有一个可位图绘制的构造函数。你使用的方法是去润滑的。尝试: Drawa

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

public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}
图像路径为:mnt/sdcard/MyFolder/image.png


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

实际上,直接从文件路径有一个可位图绘制的构造函数。你使用的方法是去润滑的。尝试:

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);
}

看看
decodeFile
@doomsnight你能举个例子吗?我现在正在查找BitmapFromFile,但找不到任何有关它的信息。@Doomsknight我明白了,所以我必须在以后将位图转换为可绘制对象?很高兴它有帮助。我添加了一个答案来帮助其他人,如果你想勾选它,请:)第一段代码应该是=new BitmapDrawable(),因为它是一个构造函数。@JohnJSmith Changed.:)