1. 相关概念
- Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象即可。
- Canvas画布,绘图的目的区域。
- Bitmap位图,用于图形的处理。
- Matrix矩阵,进行图形变换。
2. Bitmap相关的转化
2.1. 从资源中获取Bitmap
|
2.2. Bitmap 转为 byte[]
|
2.3. byte[] 转为 Bitmap
|
2.4. Bitmap缩放
|
5、将Drawable转化为Bitmappublic 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; }
2.6. 获得圆角图片
|
2.7. 获得带倒影的图片
|
3. Drawable相关的转化
3.1. Bitmap转换成Drawable
|
3.2. Drawable缩放
|