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

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又相当于是桥梁。大家都懂得。

byte[] 、Bitmap与Drawbale 三者直接的转换的更多相关文章

  1. Android中 Bitmap Drawable Paint的获取、转换以及使用

    比如Drawable中有一系列连续的图片,img_0.png, img_1.png, img_2.png ... 如果要动态获取这些图片,通过"R.drawable.img_x"的 ...

  2. 做筛选遍历时遇到的json字符串、json对象、json数组 三者之间的转换问题

    这个是后台对登录用户以及筛选条件的操作 @Override public List<SdSdPer> listResults(String sidx, String sord) { try ...

  3. byte,bitmap,image互转

    /// <summary> /// 将图片Image转换成Byte[] /// </summary> /// <param name="Image"& ...

  4. 图片转为byte[]、String、图片之间的转换

    package com.horizon.action; import java.io.ByteArrayOutputStream; import java.io.File; import java.i ...

  5. 字节数组byte[]和整型,浮点型数据的转换——Java代码

    近期在写C++ socket和java socket之间的通信程序,涉及到整数浮点数的传输.须要从字节数组还原数据,查了一些资料.总结例如以下 1.       整数和浮点数的机器表示 在机器内部.不 ...

  6. 字节数组(byte[])与16进制字符串转换

    /// <summary> /// 转换扩展类 /// </summary> public static class ConvertExtend { /// <summa ...

  7. int ,Intege,String 三者之间的转换

    注:如果使用JDK5.0的话,JVM会自动完成装包解包的. 1.Integer转换成int的方法 Integer i = new Integer(10); int k = i.intValue();即 ...

  8. 19-3-4 Python进制转换;bool str int三者之间的转换;字符串的索引,切片;for循环的使用

    进制转换: 二进制转十进制:  0010 1111 = 1*2**0+1*2**1+1*2**2+1*2**3+1*2**5 十进制转换二进制: 用十进制数除2逆序取余 --->101010 布 ...

  9. json字符串、json对象、数组 三者之间的转换

    json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.parse(j ...

随机推荐

  1. PL/SQL Developer 显示中文乱码问题解决

    PL/SQL Developer 显示中文乱码问题简单版本:首先,通过 select userenv('language') from dual;查询oracle服务器端的编码, 如为: AMERIC ...

  2. MVC流程图

    MVC请求流程图 一 MVC流程图 二 流程步骤 客户端浏览器发送请求到MVC应用程序. Global.ascx接收这个请求,并且执行基于使用RouteTable,RouteData,UrlRouti ...

  3. shell中set命令

    set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值.set命令不能够定义新的shell变量.如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定 ...

  4. 命令行设置IE代理

    IE代理可以在注册表中设置,所以用DOS修改注册表,可以达到目的.方法一:注册表文件:REGEDIT4[HKEY_CURRENT_USER\Software\Microsoft\Windows\Cur ...

  5. spring 配置多数据源 (案例)

    *.properties配置: <!--数据连接配置一--> jdbc.type=mysqljdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:m ...

  6. 使用json-server搭建模拟api接口

    转载:http://blog.csdn.net/adojayfan/article/details/55011674 作为前端和客户端开发人员,在后端还没有给出对应的api接口时,我们无法做测试. 这 ...

  7. 使用Java取得本机IP和机器名

    try { InetAddress addr = InetAddress.getLocalHost(); String ip=addr.getHostAddress().toString();//获得 ...

  8. 在项目中引用android.support.v7

    在Android开发中,新建的项目可能因为缺少对sopport工程的引用而报错,可以这样解决. 1.项目右键 --> import --> Android --> Existing ...

  9. win8硬盘安装Ubuntu14.04双系统參考教程

    硬盘安装,无需光盘.U盘.win8为主.Ubuntu14.04为辅.可将Windows或Ubuntu设置为开机默认启动项.在Ubuntu下可查看.操作Windows系统下的文件:适用于安装和14.04 ...

  10. Django——基于类的视图(class-based view)

    刚开始的时候,django只有基于函数的视图(Function-based views).为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Funcation-based generic vie ...