从SD卡加载drawable

idi*_*ish 6 java android path sd-card drawable

我正在尝试从我的设备SD卡中加载一个png图像作为drawable.我使用以下函数,但它不起作用:

public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}
Run Code Online (Sandbox Code Playgroud)

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

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

Doo*_*ght 13

实际上直接来自文件路径的BitmapDrawable构造函数.您正在使用的方法已被删除.尝试:

Drawable myDrawable = new BitmapDrawable(getResources(), pathName);
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请尝试获取位图并从中创建一个drawable:

可以使用创建位图 decodeFile

你可以像这样使用它:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用位图进行绘图等.

将Bitmap转换为可绘制用途

Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看此处(位图)此处(位图Drawables).