android - BitmapFactory.decodeFile 为空

标签 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();

我的错误在哪里?

最佳答案

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

关于android - BitmapFactory.decodeFile 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793063/

相关文章:

android - 从源代码构建 Android 后运行模拟器

android - 录制音频时的进度

java - 如何在flutter中检测模拟器或真实设备? (Bluestacks、NoxPlayer 或 LDPlayer)

android - 升级到 Flutter 3.0 后无法构建 iOS 或 Android 应用

android - 我怎样才能第二次正确保存我的位图?

android - 将 html5 canvas 转换为 android

java - 如何使用 ExtractMpegFrames.java 正确地将 mp4 中的帧保存为 png 文件?

java - 如何创建具有特定颜色(不是黑色)的透明位图?

java - 在 Canvas 顶部绘制多行文本

android - 如何在 Android 中的位图图像上添加字符串?