位图从BitmapFactory.decodeFile(文件名)返回null

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (268)

当我调用这个函数时,图像视图中没有图像 bitmapFactory.decodefile(filename)显示null ..请帮忙。

这是我的代码:

public Bitmap ShowImage(String imageName,String userImageName ) 
{

    File sdcard_mainDirectory = new File(Environment.getExternalStorageDirectory(),"UserImages").getAbsoluteFile();

    File file = new File(sdcard_mainDirectory, userImageName).getAbsoluteFile();

    if (file != null) {

        try {

            String imageInSD = "/sdcard/UserImages/"+userImageName;

            Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);

            return bitmap;

        }
        catch (Exception e) {

            e.printStackTrace();
        }

    }

    return null;

}
提问于
用户回答回答于

嗨,这是null因为可能是图像的大小很大,得到异常,请检查您的日志,看看有没有outofmemory位图的任何错误,如果是的话,然后使用选项:

BitmapFactory.Options options;

try {
  String imageInSD = "/sdcard/UserImages/" + userImageName;
  Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
  return bitmap;
} catch (OutOfMemoryError e) {
  try {
    options = new BitmapFactory.Options();
    options.inSampleSize = 2;
    Bitmap bitmap = BitmapFactory.decodeFile(imageInSD, null, options);
    return bitmap;
  } catch(Exception e) {
    Log.e(e);
  }
}
用户回答回答于

你为什么要做这个 String imageInSD =“/ sdcard / UserImages /”+ userImageName;

我想如果你得到一个.png文件存在然后只是,

 Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());

注意:同时检查你有一个Android支持的图像文件存在于该位置..

所属标签

可能回答问题的人

  • 找虫虫

    0 粉丝0 提问5 回答
  • 天使的炫翼

    17 粉丝531 提问5 回答
  • 不吃貓的鱼oo

    4 粉丝466 提问4 回答
  • 人生的旅途

    10 粉丝484 提问4 回答

扫码关注云+社区

领取腾讯云代金券