Bitmap和Drawable相互转换方法!!!
来源:互联网 发布:mac鼠标右键功能 编辑:程序博客网 时间:2024/06/05 13:13
一、Bitmap转Drawable
- Bitmap bm=xxx; //xxx根据你的情况获取
- BitmapDrawable bd=BitmapDrawable(bm);
二、 Drawable转Bitmap
转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保存成为jpg和png的文件。
- Drawable d=xxx; //xxx根据自己的情况获取drawable
- BitmapDrawable bd = (BitmapDrawable) d;
- Bitmap bm = bd.getBitmap();
最终bm就是我们需要的Bitmap对象了。
R资源图片转bitmap:
Bitmap bmp=BitmapFactory.decodeResource(r, R.drawable.icon);Bitmap newb = Bitmap.createBitmap( 300, 300, Config.ARGB_8888 ); Canvas canvasTemp = new Canvas( newb ); canvasTemp.drawBitmap(bmp, 50, 50, p);1. Bitmap 转化为 byteByteArrayOutputStream out = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);byte[] array= out.toByteArray(); 2. byte转化为bitmapfinal ContentResolver contentResolver = context.getContentResolver();final PackageManager manager = context.getPackageManager();final Cursor c = contentResolver.query(uri, null, null, null, null);final int icon3DIndex = c.getColumnIndexOrThrow(ColumnName);byte[] data = c.getBlob(icon3DIndex);Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);3. bitmap转化为DrawableDrawable drawable = new FastBitmapDrawable(bitmap);...
4. Drawable转化为bitmap a. BitmapDrawable, FastBitmapDrawable直接用getBitmap b. 其他类型的Drawable用Canvas画到一个bitmap上 Canvas canvas = new Canvas(bitmap) drawable.draw(canvas)android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:
1、Drawable → Bitmap
public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap;}
2、从资源中获取Bitmap
Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);3、Bitmap → byte[]
private byte [] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100 , baos); return baos.toByteArray(); } private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); } 4、 byte[] → Bitmap
private Bitmap Bytes2Bimap( byte [] b){ if (b.length!= 0 ){ return BitmapFactory.decodeByteArray(b, 0 , b.length); } else { return null ; } }
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Android Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法!!!
- Android Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- android:Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- android:Bitmap和Drawable相互转换方法
- Bitmap和Drawable相互转换方法
- Android:Bitmap和Drawable相互转换方法
- android:Bitmap和Drawable相互转换方法
- ffmpeg 编译 命令(windows+MSYS+MinGW)
- 看图理解单链表的反转
- C语言字符串char *和char[]——摘自《C primer plus》
- 提升磁盘IO性能的几个技巧
- USE_HASH
- Bitmap和Drawable相互转换方法!!!
- JDBC提高mysql入库的效率!
- 文档学习:Table View Programming Guide
- 哈工大 《.NET程序设计》 实验1:开发Windows窗体应用程序
- poj 3308
- PHP 代码规范
- Oracle学习笔记--第一章
- NSDate计算天数。
- 数据访问之改变作用域链