在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实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);
}
}
下图是效果:
可以看出,两种方式都挺有效的。
分享到:
相关推荐
本篇文章主要介绍了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,支持绘制以下类型的图表:
这是一个自动画图的程序,会自动改变图形的颜色。