自定义控件—canvas、paint

一、简介

Android上绘制2D图形的基础是canvas和paint。canvas是画布,paint是画笔。canvas决定形状,那paint就是决定绘制的具体的颜色和效果。canvas虽然是基础,但是很强大。

二、paint(画笔)

这里主要介绍paint的几个常用的方法。

Paint.setStyle(Paint.Style.FILL);//设置画笔的填充模式
                //具体的模式有三种:
                STROKE  //描边
                FILL  //填充
                FILL_AND_STROKE //描边加填充  
 setARGB(int a,int r,int g,int b);  
//设置绘制的颜色,a代表透明度,r,g,b代表颜色值。  
 setAlpha(int a);  
//设置绘制图形的透明度。
 setColor(int color);  
//设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
 setAntiAlias(boolean aa);  
//设置是否使用抗锯齿功能,会消耗较大资源。  
 setStrokeWidth(float width);  
//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度 

三、canvas

绘制颜色 :

drawColor, drawRGB, drawARGB    //使用单一颜色填充整个画布

绘制基本形状 :

drawPoint, drawPoints, drawLine, drawLines, drawRect, drawRoundRect, drawOval, drawCircle, drawArc  
//依次为 点、线、矩形、圆角矩形、椭圆、圆、圆弧

绘制图片:

drawBitmap, drawPicture     //绘制位图和图片

绘制文本:

    drawText, drawPosText, drawTextOnPath   
    //依次为 绘制文字、绘制文字时指定每个文字位置、根据路径绘制文字

绘制路径:

drawPath    绘制路径,绘制贝塞尔曲线时也需要用到该函数

顶点操作:

drawVertices, drawBitmapMesh // 通过对顶点操作可以使图像形变,drawVertices直接对画布作用、 drawBitmapMesh只对绘制的Bitmap作用

画布剪裁 :

clipPath, clipRect  //设置画布的显示区域

画布快照 :

save, restore, saveLayerXxx, restoreToCount, getSaveCount   //依次为 保存当前状态、 回滚到上一次保存的状态、 保存图层状态、 回滚到指定状态、 获取保存次数

画布变换:

translate, scale, rotate, skew  //依次为 位移、缩放、 旋转、错切

Matrix(矩阵):

这getMatrix, setMatrix, concat   //画布的位移,缩放等操作的都是图像矩阵Matrix, 只不过Matrix比较难以理解和使用,故封装了一些常用的方法。
发布了29 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sushineboy/article/details/78538240