BitmapFactory.decodeFile 为空

BitmapFactory.decodeFile is null

我尝试了几种方法,但总是 returns 'null'。

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

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

我的错误在哪里?

如果您不知道 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");

谢谢大家的帮助!!

我发现问题出在 "getAbsolutePath()" 我不明白为什么但它有效..

我改变了这个:

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

收件人:

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

而且有效!