在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
    方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。

 
  1. paint.setAntiAlias(true);

方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。

  1. canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));

测试代码如下:

  1. import android.content.Context;
  2. import android.graphics.Bitmap;
  3. import android.graphics.BitmapFactory;
  4. import android.graphics.Canvas;
  5. import android.graphics.Matrix;
  6. import android.graphics.Paint;
  7. import android.graphics.PaintFlagsDrawFilter;
  8. import android.view.View;
  9. public class MyView extends View {
  10. private PaintFlagsDrawFilter pfd;
  11. private Paint mPaint = new Paint();
  12. private Matrix matrix = new Matrix();;
  13. private Bitmap bmp;
  14. public MyView(Context context) {
  15. super(context);
  16. initialize();
  17. }
  18. private void initialize() {
  19. pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
  20. mPaint.setAntiAlias(true);
  21. matrix.setRotate(30);
  22. matrix.postScale(0.5f, 0.5f);
  23. bmp = BitmapFactory.decodeResource(getResources(), R.drawable.show);
  24. }
  25. @Override
  26. public void dispatchDraw(Canvas canvas) {
  27. canvas.translate(100, 0);
  28. canvas.drawBitmap(bmp, matrix, null);
  29. canvas.translate(0, 250);
  30. canvas.drawBitmap(bmp, matrix, mPaint);
  31. canvas.setDrawFilter(pfd);
  32. canvas.translate(0, 250);
  33. canvas.drawBitmap(bmp, matrix, null);
  34. }
  35. }

下图是效果:

可以看出,两种方式都挺有效的。

最新文章

  1. javascript高级程序设计---第二、三章
  2. js获取url参数值(HTML之间传值)
  3. 使用jsdoc-toolkit实现JS API文档自动化
  4. 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
  5. Subsets [LeetCode]
  6. 在Hadoop伪分布式模式下安装Hive(derby,mysql)
  7. 다음에 적용될 Auto_increment 값 알아 내기 (计算下一个Auto_increment的值)
  8. 【※索引】mysql索引常用命令
  9. 基本HTML5文件结构
  10. hdu_2899_Strange fuction(三分查找)
  11. java装箱跟拆箱解析
  12. 分布式系统的消息&服务模式简单总结
  13. Openwrt无线中继设置并访问外网
  14. 【Spark调优】数据本地化与参数调优
  15. 启用SharePoint 的 web application下面所有站点“备用语言”
  16. Bzoj4480: [Jsoi2013]快乐的jyy 广义后缀自动机 倍增 哈希 manacher
  17. 树莓派3中安装JDK
  18. 8.5 正睿暑期集训营 Day2
  19. NSObject的hash方法
  20. [Linux] diff命令:逐行进行文件比较

热门文章

  1. mybatis源码分析(5)-----拦截器的实现原理(动态代理+责任链)
  2. 移动应用安全开发指南(Android)--完结篇
  3. Idea下Python开发平台的搭建
  4. OpenERP实施记录(11):入库处理
  5. 幸福框架:用户想看到的操作日志也要使用AOP吗?
  6. python接口自动化8-参数化
  7. Basic Messager
  8. thymleaf th:text 和 th:utext 之间的区别
  9. 视频运行库AVICAP32.DLL说明收藏
  10. Java:Object类详解