Android画图之抗锯齿paint和Canvas两种方式实例

Android画图之抗锯齿paint和Canvas两种方式实例,第1张

概述在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实AndroID自带了解决方式。

方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。

paint.setAntiAlias(true); 

方法二:给Canvas加上抗锯齿标志。

有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。

复制代码 代码如下:
canvas.setDrawFilter(new PaintFlagsDrawFilter(0,Paint.ANTI_AliAS_FLAG|Paint.FILTER_BITMAP_FLAG)); 

eg:

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,mPaint);     canvas.setDrawFilter(pfd);     canvas.translate(0,null);   } } 

下图是效果:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android画图之抗锯齿paint和Canvas两种方式实例全部内容,希望文章能够帮你解决Android画图之抗锯齿paint和Canvas两种方式实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存