Android缩放drawable
来源:互联网 发布:如何谈恋爱 知乎 编辑:程序博客网 时间:2024/06/10 05:19
Android缩放drawable
一、 相关概念
1. Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象
2. Canvas画布,绘制的目的区域,用于绘图
3. Bitmap位图,用于图的处理
4. Matrix矩阵,此例中用于操作图片
二、 步骤
1. 把drawable画到位图对象上
2. 对位图对象做缩放(或旋转等)操作
3. 把位图再转换成drawable
三、 示例
static Bitmap drawableToBitmap(Drawable drawable) // drawable 转换成bitmap
{
int width = drawable.getIntrinsicWidth(); // 取drawable的长宽
int height = drawable.getIntrinsicHeight();
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565; //取drawable的颜色格式
Bitmap bitmap = Bitmap.createBitmap(width, height, config); // 建立对应bitmap
Canvas canvas = new Canvas(bitmap); // 建立对应bitmap的画布
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas); // 把drawable内容画到画布中
return bitmap;
}
static Drawable zoomDrawable(Drawable drawable, int w, int h)
{
int width = drawable.getIntrinsicWidth();
int height= drawable.getIntrinsicHeight();
Bitmap oldbmp = drawableToBitmap(drawable); // drawable转换成bitmap
Matrix matrix = new Matrix(); // 创建操作图片用的Matrix对象
float scaleWidth = ((float)w / width); // 计算缩放比例
float scaleHeight = ((float)h / height);
matrix.postScale(scaleWidth, scaleHeight); // 设置缩放比例
Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true); // 建立新的bitmap,其内容是对原bitmap的缩放后的图
return new BitmapDrawable(newbmp); // 把bitmap转换成drawable并返回
}
}
- Android缩放drawable
- Android缩放drawable
- android Drawable 缩放
- Android缩放drawable
- Android缩放drawable
- [转载]Android缩放drawable
- Android缩放drawable
- Android:图片大小缩放drawable
- drawable缩放
- Android缩放drawable 压缩图片 matrix
- Android缩放drawable 压缩图片 matrix
- Android drawable 图片文件夹 缩放问题
- Android缩放drawable 压缩图片 matrix
- android 将drawable图片进行缩放
- Android如何缩放图片以及Drawable转Bitmap方法
- Android ,Bitmap ,Drawable,图像缩放,圆角处理,倒影
- android开发问题bitmap drawable一直会自动缩放
- Drawable转BitMap实现Drawable的缩放
- 检查某个文件或目录是否存在的函数
- Eclipse3.4+CDT5.0安装配置
- eclipse相关
- JSP页面动态图片验证码
- 千姿百态项目经理3——“牛X”项目经理5
- Android缩放drawable
- http 协议是一个 parse 效率不高的协议
- C语言基础知识
- CKEditor 3.6 + CKFinder 2.0在Asp.Net中的配置与基本用法
- mysql cluster的常见问题
- CRS-0184: Cannot communicate with the CRS daemon.
- ISCC 2012 内核关的一些蛋疼想法
- wgui_categories_idlescreen.c
- 因为爱情