<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开发中非常实用
Android Drawable、Bitmap、byte、灰度 之间的转换
//将Drawable转化为Bitmap public static Bitmap drawableToBitmap(Drawable drawable){ int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.create...
bitmap转byte[] 获取缩略图 保存图片 光晕效果 获取bitmap的字节大小 将彩色图转换为黑白图 转换成圆角 高斯模糊 圆形图片 从Assets中读取图片 按比例缩小图片(单位像素) 判断图片旋转情况 旋转图片 图片旋转 根据...
Bitmap → byte[];byte[] → Bitmap;Bitmap缩放;将Drawable转化为Bitmap;获得圆角图片;获得带倒影的图片;Drawable缩放
android BitMap、Drawable、inputStream及byte[] 互转,dp和px之间转换,还原短信,横竖屏切换,获取各种窗体高度,禁用home键盘,开机启动,开机启动应用,挪动dialog的位置,判断网络状态,权限列表,设置apn,调节屏幕亮度,...
主要介绍了Android编程使用Intent传递图片的方法,结合实例形式分析了Android基于Intent传输图片的原理与具体实现技巧,需要的朋友可以参考下
图片工具类,可用于Bitmap, byte array, Drawable之间进行转换以及图片缩放,目前功能薄弱,后面会进行增强。如: bitmapToDrawable(Bitmap b) bimap转换为drawable drawableToBitmap(Drawable d) drawable转换为...
drawable2Bitmap, bitmap2Drawable : drawable 与 bitmap 互转 drawable2Bytes, bytes2Drawable : drawable 与 byteArr 互转 view2Bitmap : view 转 Bitmap dp2px, px2dp : dp 与 px 互转 sp2px, px2sp : sp 与 px ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
1. android 图像处理系列之一--Bitmap、Drawable 和byte[]之间的相互转换..................................................2 2. 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、...
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、...
|--BitMap、Drawable、inputStream及byte[] 互转 |--ContentProvider内容提供者定义 |--DatePicker日期控件 |--desktop |--Dialog之位置的挪动与控制 |--Dialog实现无标提栏及自定义风格 |--Dialog风格Activity的...