BitmapFactory.decodeFile为null

时间:2016-01-14 15:16:52

标签: android android-bitmap

我尝试了几种方法,但它总是返回'null'。

我想将相机文件夹中的文件读入位图对象。

File camDir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/DCIM/Camera");
    File[] files = camDir.listFiles();
    Bitmap img = BitmapFactory.decodeFile(files[1].getAbsolutePath());
    img.getDensity();

我的错误在哪里?

2 个答案:

答案 0 :(得分:1)

如果你不知道null是什么,你可以添加一个简单的try()catch(Exception e)然后e.printstacktrace();来获取错误。

如果错误大约为outOfMemory,请尝试此answer;

另外,你可以尝试这个技巧:

File camDir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/DCIM/Camera");
File[] files = camDir.listFiles();
FileInputStream FI = new FileInputStream (files[1].getAbsolutePath());
Bitmap img = BitmapFactory.decodeStream(FI);
img.getDensity();

我在评论中提到的另一个尝试,您可以删除getAbsolutePath()并执行以下操作:

File camDir = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera");

答案 1 :(得分:1)

谢谢大家的帮助!!

我发现问题是“getAbsolutePath()”我不明白为什么但它有效..

我改变了这个:

File camDir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/DCIM/Camera");

要:

File camDir = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera");

它有效!