位图是从BitmapFactory.de codeFILE(文件名)返回null [英] Bitmap is returning null from BitmapFactory.decodeFile(filename)

查看:120
本文介绍了位图是从BitmapFactory.de codeFILE(文件名)返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我调用此函数没有在图像视图没有图像 bitmapFactory.de $ C $的CFile(文件名)显示空..请帮助这一点。

下面是我的code:

 公共位图ShowImage(字符串imageName,字符串userImageName)
{

    文件sdcard_mainDirectory =新的文件(Environment.getExternalStorageDirectory(),UserImages)getAbsoluteFile()。

    档案文件=新的文件(sdcard_mainDirectory,userImageName).getAbsoluteFile();

    如果(文件!= NULL){

        尝试 {

            字符串imageInSD =/ SD卡/ UserImages /+ userImageName;

            点阵位图= BitmapFactory.de codeFILE(imageInSD);

            返回的位图;

        }
        赶上(例外五){

            e.printStackTrace();
        }

    }

    返回null;

}
 

解决方案

,因为可能是图像尺寸大,越来越异常,请检查您的日志和看看有没有内存溢出的位图,如果是,则使用该选项的任何错误:

  BitmapFactory.Options选项;

尝试 {
  字符串imageInSD =/ SD卡/ UserImages /+ userImageName;
  点阵位图= BitmapFactory.de codeFILE(imageInSD);
  返回的位图;
}赶上(OutOfMemoryError异常E){
  尝试 {
    选项​​=新BitmapFactory.Options();
    options.inSampleSize = 2;
    点阵位图= BitmapFactory.de codeFILE(imageInSD,空,期权);
    返回的位图;
  }赶上(例外五){
    Log.e(E);
  }
}
 

When I am calling this function there is no image in image view bitmapFactory.decodefile(filename) showing null .. please help for this.

Here is my code :

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;

}

解决方案

Hi it is null because may be the image size is big and getting exception please check your log and see is there any error of outofmemory bitmap if yes then use options for that:

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);
  }
}

这篇关于位图是从BitmapFactory.de codeFILE(文件名)返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆