抗锯齿在游戏中很重要。玩过大型游戏的同学肯定知道都有抗锯齿的设置。Android中也需要。
出现锯齿条件:倾斜或旋转、快速变化。
当在屏幕上画一条直线时, 横竖不会出现锯齿, 但是当斜着画时, 就会出现锯齿的效果。
画笔的抗锯齿(用于线条等)设置:
paint.setAntiAlias(true);
图片线条(通用)的抗锯齿需要另外设置:
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));
1、画笔paint的常用方法介绍:
setAntiAlias 设置画笔的锯齿效果
setColor 设置画笔颜色
setARGB 设置画笔的a,r,g,b值。
setAlpha 设置透明度
setTextSize 设置字体大小
setStyle 设置画笔风格 空心或实心:有两个值:Paint.Style.STROKE、Paint.Style.FILL
setStrokeWidth设置空心的边框宽度。只有当画笔风格为空心时候才可以设置此值。
getColor 得到画笔的颜色
getAlpha 得到画笔的透明度
2、Color类中定义了一些颜色常量
Color.rgb方法将整型的颜色转换成Color类型。如Color.red方法可提取出红色的值。
3、Canvas画布定义了一些常用方法:
Canvas() 创建画布,可以用setBitmap()方法设置绘制具体画布
Canvas(Bitmap bitmap) 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,所以bitmap不得为null
Canvas(GL gl) 绘制3D效果时使用,与OpenGL
drawColor 设置画布背景色
setBitmap 设置具体画布
clipRect 设置显示区域,即设置裁剪区
isOpaque 检测是否支持透明
rotate 旋转画布 在游戏中我们需要对精灵旋转,缩放或其它操作就可以通过旋转画布来实现,但在旋转画布时会旋转画布上所有对象,而我们只需要旋转其中一个。这个时候我们就需要用save方法来锁定需要操作的对象,在操作后通过restore方法来解锁。(例子有此方法的运用)
setViewport 设置画布中显示窗口
skew 设置便宜量
用画布绘制几何图形的方法:
drawRect 绘制矩形
drawCircle 绘制圆形
drawOval 绘制椭圆
drawLine 绘制直线
drawPoint 绘制点
drawPath绘制路径或者多边形
例子:
Path path = new Path();//绘制多边形
path.moveTo(10, 90);
path.lineTo(80, 100);
path.lineTo(70,150);
path.lineTo(10, 200);
path.close();//封闭多边形
canvas.drawPath(path, paint);