byte[] 、Bitmap与Drawbale 三者直接的转换

经常遇到这种类似头疼的问题

byte[] 、Bitmap与Drawbale 三者直接的转换
1、byte[] ->Bitmap
Bitmap Bitmap = BitmapFactory.decodeByteArray(data, offset, length);
2、Bitmap->byte[] 这种转换我们应该将Bitmap看成是一张图片,这样我们想获取它的数据,就知道要通过流,而且是byte类型流,于是很容易记住转换方法 。
(1)ByteArrayOutputStream out = new ByteArrayOutputStream();//获取流
(2)bitmap.compress(CompressFormat.JPEG, 100, out);//将图片数据按照指定格式和质量压缩到某个流中,
(3)byte[] buf = out.toByteArray();//将流转换为byte[]
Bitmap 、Drawbale直接的转换方法特别好记,只有利用他们之间搭建着桥梁,BitmapDrawable,剩下的就是利用向上转型和向下转型的思路就可以搞定。
3、Bitmap->Drawbale 向上转型,因为Drawbale更靠近图片文件。
Drawable drawable = new BitmapDrawable(bitmap);
4、Drawbale->Bitmap 向下转型
Bitmap bitma = ((BitmapDrawable) bit).getBitmap();

至于byte[] 与Drawbale之间的转换,那么Bitmap又相当于是桥梁。大家都懂得。

posted on 2016-11-08 17:12  oooo呼呼  阅读(505)  评论(0编辑  收藏  举报