BitmapFactory.decodeFile()返回null。

问题描述 投票:1回答:3

我正在创建一个Android应用程序,其中你从位置复制一个图像 x 位置 y. 复制完成后,我想看看图片中的内容。ImageView. 我知道图像的位置,但无论我怎么尝试,我都无法创建一个新的图像。bitmap 的对象。

导致我的问题的行是这样的。

BitmapFactory.decodeFile(dir+s);

dir = getCacheDir().getAbsolutePath()+"/images/";

s = file name (eg. 1275123123.jpg)

如果我创建一个 File 对象的路径相同,并调用 f.isFile(),它返回 true.

在android或windows中打开图像都不是问题。

android file bitmap bitmapfactory
3个回答
6
投票

你是不是忘记添加SD卡访问权限READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE?


2
投票

我也遇到过类似的问题,最终解决的方法是创建了 FileInputStream(...) 并对流进行解码。这是我使用的代码,我把它改成适合你的情况。

File location = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/images");
File dest = new File(location, fileName + ".JPG");
FileInputStream fis;
fis = new FileInputStream(dest);
Bitmap img = BitmapFactory.decodeStream(fis);

-1
投票

你必须添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

权限到你的清单上。

而且请不要忘记向用户申请运行时权限。

© www.soinside.com 2019 - 2024. All rights reserved.