我尝试了几种方法,但它总是返回'null'。
我想将相机文件夹中的文件读入位图对象。
File camDir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/DCIM/Camera");
File[] files = camDir.listFiles();
Bitmap img = BitmapFactory.decodeFile(files[1].getAbsolutePath());
img.getDensity();
我的错误在哪里?
答案 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");
它有效!