java - 从 SD 卡加载绘图

标签 java android path drawable sd-card

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

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

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

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

最佳答案

实际上有一个直接来自文件路径的 BitmapDrawable 构造函数。您正在使用的方法是 depricated。尝试:

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

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

可以使用decodeFile创建位图

你可以这样使用它:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

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

将位图转换为可绘制使用

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

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

关于java - 从 SD 卡加载绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652798/

相关文章:

java - 扩展父类(super class)属性

java - 如何从另一个类更新 Activity 的 TextView

android - [^] 不工作的 SQLite 查询

android - Gstreamer、Raspberry Pi 和 Android。如何获取流媒体视频?

java - 如何在Windows上创建程序数据的本地文件夹(在%APPDATA%中,无需授予权限,JAVA)

java - Spring Autowiring 不起作用

java - 将项目添加到 arraylist 不会添加它?

java - 在 Web 应用程序和批处理应用程序之间共享代码库的好方法是什么?

java - 从/src/main/resources/读取文件

file - 如何获取 Intellij 工作区位置 URI