boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.Output
log日志
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
出错代码
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
代码很简单,BitmapFactory读取图片到Bitmap,然后转成byte,这也是网上搜索到的最常用的方法,但是运行之后就出现了上面空指针的错误,bitmap为空
在网上找到了这篇文章BitmapFactory.decodeResource为null的处理方法之一,这里所说R.mipmap.ic_launcher
是一个vector图片,此代码在4.4上运行正常,但在5.0以上的系统会出现空指针,原因在于此本来方法不能将vector转化为bitmap,而apk编译时为了向下兼容,会根据vector生产相应的png,而4.4的系统运行此代码时其实用的是png资源。这就是为什么5.0以上会报错,而4.4不会的原因
解决办法
private static Bitmap getBitmap(Context context,int vectorDrawableId) {Bitmap bitmap=null;if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP){Drawable vectorDrawable = context.getDrawable(vectorDrawableId);bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());vectorDrawable.draw(canvas);}else {bitmap = BitmapFactory.decodeResource(context.getResources(), vectorDrawableId);}return bitmap;
}
boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.Output相关推荐
- android.graphics.bitmap jar,Android入门之画图详解
前文常用的控件介绍了不少,现在就来讨论一下手机开发中常用到的画图.要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口: 1.Bitmap,可以来自资源/文件,也可以在程序中创建, ...
- Android之华为手机打开app奔溃提示java.io.FileNotFoundException: res/drawable/abc_vector_test.xml
1.问题 新建立的项目,华为手机运行起来提示如下 06-24 18:24:03.175 13314 13314 E AndroidRuntime: java.lang.RuntimeException ...
- android 请求服务器抛io异常,Android开发中与服务器交互时,遇到java.io.IOException: Target host must not be null的问题...
当我遇到这个问题的时候,也在网上查找好半天.找到了一个和这个问题很类似的问题--java.lang.IllegalStateException: Target host must not be nul ...
- Android异常 NullPointerException: Attempt to invoke virtual method int java.lang.Integer.intValue()
异常详情 05-23 16:15:41.672 4206 6875 E AndroidRuntime: java.lang.NullPointerException: Attempt to invok ...
- Matrix: android 中的Matrix (android.graphics.Matrix) (转)
本篇博客主要讲解一下如何处理对一个Bitmap对象进行处理,包括:缩放.旋转.位移.倾斜等.在最后将以一个简单的Demo来演示图片特效的变换. 1. Matrix概述 对于一个图片变换的处理,需要Ma ...
- 【Android】Bitmap图片裁剪(91/100)
自定义裁剪类CropImageView: package top.lc951.myandroid.views;import android.content.Context; import androi ...
- 【Android】Bitmap图像色彩模式:黑白、模糊、老照片、胶卷等(92/100)
图像转换封装工具类BitmapUtil: /*** 图片位图转换工具** @author lichong* 2022年07月26日15:35:16*/ public class BitmapUtil ...
- android 常用Bitmap处理方法收集:普通裁剪,缩放,圆形裁剪
代码是平常使用时收集的,并不是本人所写.这些bitmap处理方法在我的android程序里面使用相对较多,希望对大家也有些帮助. import android.graphics.Bitmap; imp ...
- Android之Bitmap高效缓存以及android缓存策略
Android之Bitmap高效缓存 一.Bitmap高效加载 1.bitmap的基本概念 位图:获取像素值进行加载. Bitmap是Android系统中图像处理中的最重要的一个类. 通过Bitmap ...
最新文章
- 分组加密的常用工作模式(转载)
- CTFshow php特性 web147
- 06丨MongoDB基本操作
- nssl1318-地铁重组【dp】
- 云服务器安全组配置(阿里云,ucloud云,华为云)
- JS连续赋值与求值顺序
- SNMP 简单网络管理协议
- 计算机专业术语大全(中~英文版)
- LM358运放(比较器、跟随器)输出最高电压问题的探讨
- 微信小程序样式-在小程序中创建样式的几种写法
- 手把手教你做线性回归分析,实用且通俗易懂!
- android开发转盘按钮,Android中的转盘
- 阿里 P9 用 500 多页手册完成双十一高并发秒杀系统,绝了
- 计算机网络连接显示678是什么意思,宽带连接错误678是什么意思 宽带连接错误678的解决方案...
- CSS中z-index:0 与 z-index:auto的区别
- PostgreSQL入门之基本工具+常用psql命令+show语法
- 程序员只能吃青春饭?3条晋升之路帮你摆脱程序员中年魔咒!
- 可调稳压芯片LM317
- linux 火车票软件,快订火车票软件下载-快订火车票订购appv3.3.5-Linux公社
- R语言 | 认识apply家族
热门文章
- 《Adobe Fireworks CS5中文版经典教程》——1.7复习
- OATS和配对测试应该如何选择? 如何确定正交选择的强度?
- .NET自助建站系统开发框架源码 PC端+WAP端+微信端
- AppStore上架过程记录(五)-后记
- 吴恩达深度学习第二周+二分类应用+猫图片识别
- 解决img标签src路径为本地路径访问受限问题:Not allowed to load local resource
- matlab与科学计算 王沫然,MATLAB与科学计算(第3版) 王沫然著 电子工业出版社 9787121180521...
- Visual Studio.net 2005 简体中文版[电驴下载]
- html中文本属性的设置,css 文本属性direction的功能详解说明
- airflow连接mysql错误_airflow使用MySQL数据库(第三方数据库详解)