在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
-
paint.setAntiAlias(true);
方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。
-
canvas.setDrawFilter(newPaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
测试代码如下:
-
importandroid.content.Context;
-
importandroid.graphics.Bitmap;
-
importandroid.graphics.BitmapFactory;
-
importandroid.graphics.Canvas;
-
importandroid.graphics.Matrix;
-
importandroid.graphics.Paint;
-
importandroid.graphics.PaintFlagsDrawFilter;
-
importandroid.view.View;
-
-
publicclassMyViewextendsView{
-
privatePaintFlagsDrawFilterpfd;
-
privatePaintmPaint=newPaint();
-
privateMatrixmatrix=newMatrix();;
-
privateBitmapbmp;
-
-
publicMyView(Contextcontext){
-
super(context);
-
initialize();
-
}
-
-
privatevoidinitialize(){
-
pfd=newPaintFlagsDrawFilter(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
-
publicvoiddispatchDraw(Canvascanvas){
-
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);
-
}
-
}
下图是效果:
可以看出,两种方式都挺有效的。
分享到:
相关推荐
本篇文章主要介绍了Android画图之抗锯齿paint和Canvas两种方式实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例分析了Android编程画图之抗锯齿解决方法。分享给大家供大家参考,具体如下: 在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿...
用GDI+消除画直线的锯齿,C++ Chart的使用
Android画图之Matrix剖析Android画图之Matrix剖析Android画图之Matrix剖析Android画图之Matrix剖析Android画图之Matrix剖析Android画图之Matrix剖析Android画图之Matrix剖析
GDI 绘制过程中有锯齿现象,这部分代码可以有效实现抗锯齿功能(线条、矩形,圆角矩形、多边形,圆形、椭圆.....)
Android画图学习.pdf Android画图学习 • Android画图学习总结(一)——类的简介 • Android画图学习总结(二)——Bitmap • Android画图学习总结(三)——Drawable • Android画图学习总结(四)——...
Android 画图程序源码.rar
android画图
android 画图集合.zip
android画图程序源代码介绍: 这是一个自动画图的程序,会自动改变图形的颜色,效果如下图所示:
android 画图小例子 android 画图小例子 android 画图小例子
android画图源码,可以在android屏幕中显示多条线段,涉及坐标映射等问题。
android平台画图板程序,可画图可擦除绘图功能实现,通过自定义View实现,转载请注明出处!
这里是一个利用Canvas实现的集合程序。利用这个项目,你可以学到很多和Canvas相关的技术。
MFC 工程,GDI(非GDI+)画线反走样处理,抗锯齿,画图时可自行加上简单的平滑处理
使用Canvas实现绘图 全屏手写等功能 代码简单清晰易读易懂 扩展性 移植性强
关于AChartEngine AChartEngine是为android应用而设计的绘图工具库。目前该库的最新稳定版本是0.7,支持绘制以下类型的图表:
这是一个自动画图的程序,会自动改变图形的颜色。