【问题标题】:Loading drawable from sd card从 sd 卡加载 drawable
【发布时间】:2012-09-29 12:42:34
【问题描述】:

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

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

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

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

【问题讨论】:

  • @Doomsknight 你能举个例子吗?我现在正在寻找 BitmapFromFile,但找不到任何相关信息。
  • @Doomsknight 我明白了,所以我必须在之后将位图转换为可绘制对象?
  • 很高兴它有帮助。我添加了一个答案来帮助别人,如果你想打勾,请:)

标签: java android path drawable sd-card


【解决方案1】:

实际上有一个直接来自文件路径的 BitmapDrawable 构造函数。您使用的方法已被废弃。试试:

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

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

位图可以用decodeFile创建

你可以这样使用它:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

然后就可以使用位图进行绘图等操作了

将位图转换为可绘制使用

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

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

【讨论】:

  • 第一段代码应该是 = new BitmapDrawable() 因为它是一个构造函数。
  • @JohnJSmith 已更改。 :)
【解决方案2】:

我就是这么简单

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多