Android中的ARGB_4444、ARGB_8888和RGB_565的区别
你瞅啥?
项⽬中⽤到了画布,画布中⽤到了dra w Bitma p来绘制背景图,当时设置的背景图⽚
svg和canvas的区别Bitm a
Bitma p.Co nfig的类型是RGB_565,当运⽤canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.
CLEAR);想实现背景透明的时候,发现出现了⿊⾊的背景,⽽⾮我需要的透明,了各种原因和尝试,发现跟Bitma p.Co nfig的类型有关,RGB_565这个类型存储的只是颜⾊信息,没有透明度信息,所以设置透明度,会出现⿊背景的效果看了看别⼈总结的,这⾥做个记录,为⾃⼰增加印象!
在Android的Bitmap.Config中有四个枚举类型:
- ALPHA_8
- ARGB_4444
- ARGB_8888
- RGB_565
1.ALPHA_8:每个像素都需要1(8位)个字节的内存,只存储位图的透明度,没有颜⾊信息
2.ARGB_4444:A(Alpha)占4位的精度,R(Red)占4位的精度,G(Green)占4位的精度,B(Blue)占4位的精度,加起来⼀共是16位的精度,折合是2个字节,也就是⼀个像素占两个字节的内存,同时存储位图的透明度和颜⾊信息。不过由于该精度的位图质量较差,官⽅不推荐使⽤
3.ARGB_8888:这个类型的跟ARGB_4444的原理是⼀样的,只是A,R,G,B各占8个位的精度,所以⼀个像素占4个字节的内存。由于该类型的位图质量较好,官⽅特别推荐使⽤。但是,如果⼀个480800的位图设置了此类型,那个它占⽤的内存空间是:4808004/(10241024)=1.5M
4.RGB_565:同理,R占5位精度,G占6位精度,B占5位精度,⼀共是16位精度,折合两个字节。这⾥注意的是,这个类型存储的只是颜⾊信息,没有透明度信息
Glide的解码格式是R GB565,Pic a sso是AR GB8888 ,所以同⼀个图⽚,pic a sso更清晰,但是更耗内存。
信息来源
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论