首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >位图从BitmapFactory.decodeFile(文件名)返回null

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

Stack Overflow用户
提问于 2011-12-09 15:24:19
回答 8查看 72.9K关注 0票数 41

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

下面是我的代码:

代码语言:javascript
复制
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;

}
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-12-09 16:06:02

您好,这是null,因为可能是图像大小和得到异常,请检查您的日志,看看是否有任何错误的输出内存位图,如果是,然后使用选项:

代码语言:javascript
复制
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 excepetion) {
    Log.e(excepetion);
  }
}
票数 42
EN

Stack Overflow用户

发布于 2015-03-31 20:55:08

尝试添加SD卡访问权限READ_EXTERNAL_STORAGE和/或WRITE_EXTERNAL_STORAGE。这对我很管用。

票数 9
EN

Stack Overflow用户

发布于 2020-06-24 21:12:27

如果您正尝试在Android10中尝试在清单android:requestLegacyExternalStorage="true"中将其添加到您的应用程序中,这可能是Android10的权限问题,因为它不允许直接访问文件

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8442316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档