区块链技术博客
www.b2bchain.cn

部分华为设备上无法读取bitmap的问题解决方案求职学习资料

本文介绍了部分华为设备上无法读取bitmap的问题解决方案求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

一商业项目后台崩溃信息上报发现在华为设备上读取图片闪退,经过检查应该是内存溢出,解决方案为在读取图片时进行适当压缩以节省内存占用,目前已在荣耀畅想 9 Plus测试通过,方法如下:

public static Bitmap getBitmapFromUri(Context context, Uri uri) {     try {         Bitmap bitmap = getBitmap(context.getContentResolver(), uri);         return bitmap;     } catch (Exception e) {         e.printStackTrace();         return null;     } } public static final Bitmap getBitmap(ContentResolver cr, Uri url) throws FileNotFoundException, IOException {     InputStream input = cr.openInputStream(url);      BitmapFactory.Options opts = new BitmapFactory.Options();     opts.inTempStorage = new byte[100 * 1024];     opts.inPurgeable = true;      String factory = Build.BRAND.toUpperCase();     if (factory.contains("HUAWEI")||factory.contains("HONOR")) {         opts.inSampleSize = 2;     }      opts.inInputShareable = true;     opts.inPreferredConfig = Bitmap.Config.RGB_565;      Bitmap bitmap = BitmapFactory.decodeStream(input, null, opts);     input.close();     return bitmap; }

完事。

一商业项目后台崩溃信息上报发现在华为设备上读取图片闪退,经过检查应该是内存溢出,解决方案为在读取图片时进行适当压缩以节省内存占用,目前已在荣耀畅想 9 Plus测试通过,方法如下:

public static Bitmap getBitmapFromUri(Context context, Uri uri) {     try {         Bitmap bitmap = getBitmap(context.getContentResolver(), uri);         return bitmap;     } catch (Exception e) {         e.printStackTrace();         return null;     } } public static final Bitmap getBitmap(ContentResolver cr, Uri url) throws FileNotFoundException, IOException {     InputStream input = cr.openInputStream(url);      BitmapFactory.Options opts = new BitmapFactory.Options();     opts.inTempStorage = new byte[100 * 1024];     opts.inPurgeable = true;      String factory = Build.BRAND.toUpperCase();     if (factory.contains("HUAWEI")||factory.contains("HONOR")) {         opts.inSampleSize = 2;     }      opts.inInputShareable = true;     opts.inPreferredConfig = Bitmap.Config.RGB_565;      Bitmap bitmap = BitmapFactory.decodeStream(input, null, opts);     input.close();     return bitmap; }

完事。

一商业项目后台崩溃信息上报发现在华为设备上读取图片闪退,经过检查应该是内存溢出,解决方案为在读取图片时进行适当压缩以节省内存占用,目前已在荣耀畅想 9 Plus测试通过,方法如下:

public static Bitmap getBitmapFromUri(Context context, Uri uri) {     try {         Bitmap bitmap = getBitmap(context.getContentResolver(), uri);         return bitmap;     } catch (Exception e) {         e.printStackTrace();         return null;     } } public static final Bitmap getBitmap(ContentResolver cr, Uri url) throws FileNotFoundException, IOException {     InputStream input = cr.openInputStream(url);      BitmapFactory.Options opts = new BitmapFactory.Options();     opts.inTempStorage = new byte[100 * 1024];     opts.inPurgeable = true;      String factory = Build.BRAND.toUpperCase();     if (factory.contains("HUAWEI")||factory.contains("HONOR")) {         opts.inSampleSize = 2;     }      opts.inInputShareable = true;     opts.inPreferredConfig = Bitmap.Config.RGB_565;      Bitmap bitmap = BitmapFactory.decodeStream(input, null, opts);     input.close();     return bitmap; }

完事。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 部分华为设备上无法读取bitmap的问题解决方案求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们