我正在尝试从我的设备 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/