`

android Bitmap、Drawable、byte[]相互转换

 
阅读更多
<wbr><wbr><wbr><wbr>Drawable -作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。 <p><wbr><wbr><wbr><wbr>Bitmap -称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。</wbr></wbr></wbr></wbr></p> <p><wbr>android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:<br><br> 1、Drawable → Bitmap 的简单方法<wbr></wbr></wbr></p> <p><strong>Drawable d = XXX;</strong></p> <p><strong>BitmapDrawable<wbr> bd =(BitmapDrawable)d;</wbr></strong></p> <p><strong>Bitmap<wbr> b =bd.getBitmap();</wbr></strong></p> <p>可简化为:((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap();<br></p> <wbr><br> Java代码<br> public static Bitmap drawableToBitmap(Drawable drawable){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>Bitmap bitmap= Bitmap<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>.createBitmap(<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>drawable.getIntrinsicWidth(),<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>drawable.getIntrinsicHeight(),<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>drawable.getOpacity() != PixelFormat.OPAQUE ?Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);<wbr>//按指定参数创建一个空的Bitmap对象<br><wbr><wbr><wbr><wbr><wbr><wbr>Canvas canvas= new Canvas(bitmap);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>//canvas.setBitmap(bitmap);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>drawable.setBounds(0,0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>drawable.draw(canvas);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>returnbitmap;<wbr><wbr><br> }<wbr><wbr><br><br><br> 3.Bitmap→Drawable<wbr><wbr>的简单方法<br><strong style="font-weight:normal">BitmapDrawable bitmapDrawable= (BitmapDrawable)bitmap;<wbr><wbr><wbr><wbr><br> Drawable drawable = (Drawable)bitmapDrawable;<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></strong><wbr><wbr><br><wbr><wbr><wbr><br><strong><span style="font-weight:normal">Bitmap bitmap = newBitmap (...);<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></span><br style="font-weight:normal"> Drawable drawable = new BitmapDrawable(bitmap);<wbr><wbr><br></wbr></wbr></strong><br><br> 3、从资源中获取Bitmap<br> Java代码<br> Bitmap bmp=BitmapFactory.decodeResource(getResources(),R.drawable.pic);<wbr><wbr><br><br> 4、Bitmap → Byte[]<br> Java代码<br> private byte[] Bitmap2Bytes(Bitmapbm){<wbr><wbr><br><wbr><wbr> ByteArrayOutputStream baos =new ByteArrayOutputStream();<wbr><br><wbr><wbr>bm.compress(Bitmap.CompressFormat.PNG, 100, baos);<br><wbr><wbr> returnbaos.toByteArray();<wbr><wbr><br> }<wbr><wbr><br><br> 5、 byte[] → Bitmap<br> Java代码<br> private Bitmap Bytes2Bimap(byte[]b){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if(b.length!=0){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> returnBitmapFactory.decodeByteArray(b, 0,b.length);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>else{<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> returnnull;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
评论

相关推荐

    Android Drawable、Bitmap、byte、灰度 转换

    Android Drawable、Bitmap、byte、灰度 转换

    android_Drawable、Bitmap、byte[]之间的转换.doc

    详细的介绍了android_Drawable、Bitmap、byte[]之间的转换 在android开发中非常实用

    Android Drawable、Bitmap、byte、灰度 之间的转换

    Android Drawable、Bitmap、byte、灰度 之间的转换

    android Bitmap用法总结

    //将Drawable转化为Bitmap public static Bitmap drawableToBitmap(Drawable drawable){ int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.create...

    java_一些图片管理工具类的标准代码_android_bitmap转drawable_高斯模糊代码

    bitmap转byte[] 获取缩略图 保存图片 光晕效果 获取bitmap的字节大小 将彩色图转换为黑白图 转换成圆角 高斯模糊 圆形图片 从Assets中读取图片 按比例缩小图片(单位像素) 判断图片旋转情况 旋转图片 图片旋转 根据...

    PictureUtil.java,android对图片进行操作封装类

    Bitmap → byte[];byte[] → Bitmap;Bitmap缩放;将Drawable转化为Bitmap;获得圆角图片;获得带倒影的图片;Drawable缩放

    Android一些模板代码

    android BitMap、Drawable、inputStream及byte[] 互转,dp和px之间转换,还原短信,横竖屏切换,获取各种窗体高度,禁用home键盘,开机启动,开机启动应用,挪动dialog的位置,判断网络状态,权限列表,设置apn,调节屏幕亮度,...

    Android编程使用Intent传递图片的方法详解

    主要介绍了Android编程使用Intent传递图片的方法,结合实例形式分析了Android基于Intent传输图片的原理与具体实现技巧,需要的朋友可以参考下

    Android静默安装常用工具类

    图片工具类,可用于Bitmap, byte array, Drawable之间进行转换以及图片缩放,目前功能薄弱,后面会进行增强。如: bitmapToDrawable(Bitmap b) bimap转换为drawable drawableToBitmap(Drawable d) drawable转换为...

    Android开发人员不得不收集的代码

    drawable2Bitmap, bitmap2Drawable : drawable 与 bitmap 互转 drawable2Bytes, bytes2Drawable : drawable 与 byteArr 互转 view2Bitmap : view 转 Bitmap dp2px, px2dp : dp 与 px 互转 sp2px, px2sp : sp 与 px ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    android图片处理总结

    1. android 图像处理系列之一--Bitmap、Drawable 和byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转............................

    Android开发资料合集-World版!

    9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、...

    Android 开发技巧

    9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--BitMap、Drawable、inputStream及byte[] 互转 |--ContentProvider内容提供者定义 |--DatePicker日期控件 |--desktop |--Dialog之位置的挪动与控制 |--Dialog实现无标提栏及自定义风格 |--Dialog风格Activity的...

Global site tag (gtag.js) - Google Analytics