Android中Bitmap, Drawable, Byte,ID之间的转化

Android中Bitmap, Drawable, Byte,ID之间的转化

1.  Bitmap 转化为 byte
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
byte[] array= out.toByteArray();

2. byte转化为bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

3. bitmap转化为Drawable
Drawable drawable = new FastBitmapDrawable(bitmap);

4. Drawable转化为bitmap
 a. BitmapDrawable, FastBitmapDrawable直接用getBitmap
 b. 其他类型的Drawable用Canvas画到一个bitmap上
      Canvas canvas = new Canvas(bitmap)
      drawable.draw(canvas)

5.id转化graphic.drawable

Drawable drawable = activity.getResources().getDrawable(R.drawable.icon);

6.id转化成Bitmap

Bitmap bitmap = BitmapFactory. decodeResource (Resources   res, int id)

Android中Bitmap, Drawable, Byte,ID之间的转化

时间: 2024-10-16 15:20:29

Android中Bitmap, Drawable, Byte,ID之间的转化的相关文章

Android中Bitmap和Drawable

一.相关概念1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2.Canvas画布,绘图的目的区域,用于绘图3.Bitmap位图,用于图的处理4.Matrix矩阵 二.Bitmap 1.从资源中获取Bitmap Java代码   Resources res = getResources(); Bitmap bmp = Bi

android中bitmap压缩的几种方法的解读

最近在研究微信的sdk,在缩略图这遇到了一点问题. 微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 1.质量压缩法: 代码如下 ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while ( baos.toByteArray().length /

(转)关于android中bitmap过大导致的程序crash问题

第一种方法--及时回收bitmap内存: 一般而言,回收bitmap内存可以用到以下代码 if(bitmap != null && !bitmap.isRecycled()){ bitmap.recycle(); bitmap = null; } System.gc(); bitmap.recycle()方法用于回收该bitmap所占用的内存,接着将bitmap置空,最后,别忘了用System.gc()调用一下系统的垃圾回收器. 在这里要声明一下,bitmap可以有多个(以为着可以有多个i

Android中各种Drawable总结

在Android中,Drawable使用广泛,但是种类也多,基于<Android开发艺术探索>中对Drawable的讲解,总结了如下表格.

Android中bitmap的相关处理

加载大图片 Options options=new Options(); options.inJustDecodeBounds=true;//不加载图片,只加载文件信息 //加载图片,获取到配置信息 BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/a.jpg",options); int width=options.outWidth;//获取到图片的真是宽度 int height=options.

android 中Xml里面的id重名问题

情况一:同个一个Xml文件中的同名 在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效 情况二:在不同的Xml 文件中的同名 在不同Xml文件的Id若同名了,两者都有效的. 当android的工程越来越大.xml文件越来越多时,避免不了两个xml文件中同 样的组件使用同样的id名字,gen目录下的R.java文件中,有关id的声明都在id的class中,即public static final class id{}:当两个xml文件中同样的组件,比如Button,有可能很多个文件中,都

Android中的Drawable菠菜bc网站搭建架设基础与自定义Drawable

6.gravity属性详情 可选项 含义top/bottom/left/right 将图片放在容器上/下/左/右,不改变图片大小center_vertical/horizontal 垂直居中/水平居中,不改变图片大小center 水平和垂直方向同时居中,不改变图片大小fill_vertical/horizontal 垂直/水平方向填充容器fill 水平和垂直方向同时填充容器clip_vertical/horizontal 垂直/水平方向的裁剪-较少使用7.NinePatchDrawable(.9

Android中Bitmap,byte[],Drawable相互转化

一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2.Canvas画布,绘图的目的区域,用于绘图 3.Bitmap位图,用于图的处理 4.Matrix矩阵 二.Bitmap 1.从资源中获取Bitmap 1 Resources res = getResources();2 Bitmap bmp = Bitm

Android中Bitmap,byte[],Drawable,InputStream相互转化工具类

在新浪看到一些数据流的转化,分享一下: 1.将byte[]转换成InputStream   public InputStream Byte2InputStream(byte[] b) { ByteArrayInputStream bais = new ByteArrayInputStream(b); return bais; } 2. 将InputStream转换成byte[]   两种方式: 一. public static final byte[] InputStream2Bytes(Inp