Android中的Bitmap和Drawable

转载 2016年05月31日 15:02:21

相关概念

Drawable:一个可画的对象,可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable)

CanVas画布:绘图的目的区域,用于绘图

Bitmap位图:用于图的处理

Matrix矩阵


从资源中获取Bitmap

	Resources res = getResources();
	Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.icon);

Bitmap转化bytes[]

	public byte[] Bitmap2Bytes(Bitmap bm) {
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
		return baos.toByteArray();
	}

byte[]转化Bitmap

	public Bitmap Bytes2Bimap(byte[] b) {
		if (b.length != 0) {
			return BitmapFactory.decodeByteArray(b, 0, b.length);
		} else {
			return null;
		}
	}


Bitmap缩放

	public static Bitmap zoomBitmap(Bitmap bitmap, int width, int height) {
		int w = bitmap.getWidth();
		int h = bitmap.getHeight();
		Matrix matrix = new Matrix();
		float scaleWidth = ((float) width / w);
		float scaleHeight = ((float) height / h);
		matrix.postScale(scaleWidth, scaleHeight);
		Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, w, h, matrix, true);
		return newbmp;
	}

Drawable转化Bitmap

public static Bitmap drawableToBitmap(Drawable drawable) {
		// 取 drawable 的长宽
		int w = drawable.getIntrinsicWidth();
		int h = drawable.getIntrinsicHeight();

		// 取 drawable 的颜色格式
		Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
				: Bitmap.Config.RGB_565;
		// 建立对应 bitmap
		Bitmap bitmap = Bitmap.createBitmap(w, h, config);
		// 建立对应 bitmap 的画布
		Canvas canvas = new Canvas(bitmap);
		drawable.setBounds(0, 0, w, h);
		// 把 drawable 内容画到画布中
		drawable.draw(canvas);
		return bitmap;
	}



相关文章推荐

Android Drawable Bitmap 相互转换

  • 2015年08月24日 14:01
  • 684B
  • 下载

Android使用Palette把drawable转为bitmap图像大小改变的问题

项目中要做成以下的效果,本地应用直接使用包名和颜色值遍历找对应,三方应用要去提取app的icon颜色作为背景,首先想到了Android5.0新特性相关的palette。...

Android 中的bitmap与drawable

转载自http://dyh7077063.iteye.com/blog/970672 一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable)...

Android中Bitmap和Drawable

转自:http://dyh7077063.iteye.com/blog/970672 一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也...
  • actual_
  • actual_
  • 2012年03月21日 14:16
  • 337

Android学习笔记:Canvas,Drawable,Bitmap

这一节总结一下关于图形处理相关的知识。Android中2D图形处理引擎主要有以下几个重要部分组成: Canvas:hold the “draw” calls. 画布,执行画图的操作函数 Bitma...

Android下drawable,Bitmap,Canvas与Paint区别

1.概念区别: 很多网友刚刚开始学习Android平台,对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了Drawable外早在Sun的J2ME中就已经...

android bitmap byte[] drawable互转

android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下: 1、Drawable → Bitmap Java代码 Java代码   public stat...

Android工具类之图片流InputStream->(byte[])->Bitmap/Drawable

1、下载图片 inputStream –> drawable/** * 1、下载图片 inputStream --> drawable * * @param imageU...

Android Drawable、Bitmap、Canvas和Paint的区别

很多朋友刚刚开始学习Android平台,对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中的Bitmap和Drawable
举报原因:
原因补充:

(最多只允许输入30个字)