Android画图之抗锯齿
2024-08-27 22:59:16
在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
- paint.setAntiAlias(true);
方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。
- canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
测试代码如下:
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Matrix;
- import android.graphics.Paint;
- import android.graphics.PaintFlagsDrawFilter;
- import android.view.View;
- public class MyView extends View {
- private PaintFlagsDrawFilter pfd;
- private Paint mPaint = new Paint();
- private Matrix matrix = new Matrix();;
- private Bitmap bmp;
- public MyView(Context context) {
- super(context);
- initialize();
- }
- private void initialize() {
- pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
- mPaint.setAntiAlias(true);
- matrix.setRotate(30);
- matrix.postScale(0.5f, 0.5f);
- bmp = BitmapFactory.decodeResource(getResources(), R.drawable.show);
- }
- @Override
- public void dispatchDraw(Canvas canvas) {
- canvas.translate(100, 0);
- canvas.drawBitmap(bmp, matrix, null);
- canvas.translate(0, 250);
- canvas.drawBitmap(bmp, matrix, mPaint);
- canvas.setDrawFilter(pfd);
- canvas.translate(0, 250);
- canvas.drawBitmap(bmp, matrix, null);
- }
- }
下图是效果:
可以看出,两种方式都挺有效的。
最新文章
- javascript高级程序设计---第二、三章
- js获取url参数值(HTML之间传值)
- 使用jsdoc-toolkit实现JS API文档自动化
- 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
- Subsets [LeetCode]
- 在Hadoop伪分布式模式下安装Hive(derby,mysql)
- 다음에 적용될 Auto_increment 값 알아 내기 (计算下一个Auto_increment的值)
- 【※索引】mysql索引常用命令
- 基本HTML5文件结构
- hdu_2899_Strange fuction(三分查找)
- java装箱跟拆箱解析
- 分布式系统的消息&;服务模式简单总结
- Openwrt无线中继设置并访问外网
- 【Spark调优】数据本地化与参数调优
- 启用SharePoint 的 web application下面所有站点“备用语言”
- Bzoj4480: [Jsoi2013]快乐的jyy 广义后缀自动机 倍增 哈希 manacher
- 树莓派3中安装JDK
- 8.5 正睿暑期集训营 Day2
- NSObject的hash方法
- [Linux] diff命令:逐行进行文件比较