安卓中Paint与Canvas用法
来源:互联网 发布:淘宝上旺旺点不开 编辑:程序博客网 时间:2024/06/02 12:37
Paint的基本设置函数:
- paint.setAntiAlias(true);//抗锯齿功能
- paint.setColor(Color.RED); //设置画笔颜色
- paint.setStyle(Style.FILL);//设置填充样式
- paint.setStrokeWidth(30);//设置画笔宽度
- paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影
Paint.Style.FILL_AND_STROKE :填充内部和描边
Paint.Style.STROKE :仅描边
看下这三个类型的不同,下面以画的一个圆形为例:
可见,FILL与FILL_AND_STROKE没什么区别
setShadowLayer (float radius, float dx, float dy, int color) 添加阴影
参数:
radius:阴影的倾斜度
dx:水平位移
dy:垂直位移,如paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影
然后是Canvas的基本设置:
画布背景设置:
- canvas.drawColor(Color.BLUE);
- canvas.drawRGB(255, 255, 0); //这两个功能一样,都是用来设置背景颜色的。
参数:
startX:开始点X坐标
startY:开始点Y坐标
stopX:结束点X坐标
stopY:结束点Y坐标
- canvas.drawLine(100, 100, 200, 200, paint);
2、多条直线
void drawLines (float[] pts, Paint paint)
void drawLines (float[] pts, int offset, int count, Paint paint)参数:
pts:是点的集合,大家下面可以看到,这里不是形成连接线,而是每两个点形成一条直线,pts的组织方式为{x1,y1,x2,y2,x3,y3,……}- 如:
- float []pts={10,10,100,100,200,200,400,400};
- canvas.drawLines(pts, paint);上面有四个点:(10,10)、(100,100),(200,200),(400,400)),两两连成一条直线
参数:
float X:点的X坐标
float Y:点的Y坐标
如:
- canvas.drawPoint(100, 100, paint);
- 多个点:
- void drawPoints (float[] pts, Paint paint)
void drawPoints (float[] pts, int offset, int count, Paint paint) 参数:
float[] pts:点的合集,与上面直线一直,样式为{x1,y1,x2,y2,x3,y3,……}
int offset:集合中跳过的数值个数,注意不是点的个数!一个点是两个数值;
count:参与绘制的数值的个数,指pts[]里人数值个数,而不是点的个数,因为一个点是两个数值下面举例说明上面offset与count的含义:(跳过第一个点,画出后面两个点,第四个点不画),注意一个点是两个数值!
如:- float []pts={10,10,100,100,200,200,400,400};
- canvas.drawPoints(pts, 2, 4, paint);
- (同样是上面的四个点:(10,10)、(100,100),(200,200),(400,400),drawPoints里路过前两个数值,即第一个点横纵坐标,画出后面四个数值代表的点,即第二,第三个点,第四个点没画;效果图如下)
矩形工具类RectF与Rect:- 这两个都是矩形辅助类,区别不大,用哪个都行,根据四个点构建一个矩形结构;在画图时,利用这个矩形结构可以画出对应的矩形或者与其它图形Region相交、相加等等;
void drawRect (RectF rect, Paint paint)
void drawRect (Rect r, Paint paint)
参数:
第一个的写法是直接传入矩形的四个点,画出矩形
第二、三个构造函数是根据传入RectF或者Rect矩形变量来指定所画的矩形的
圆角矩形:void drawRoundRect (RectF rect, float rx, float ry, Paint paint)
参数:
RectF rect:要画的矩形
float rx:生成圆角的椭圆的X轴半径
float ry:生成圆角的椭圆的Y轴半径
- RectF rect = new RectF(100, 10, 300, 100);
- canvas.drawRoundRect(rect, 20, 10, paint);
圆形:void drawCircle (float cx, float cy, float radius, Paint paint)
float cx:圆心点X轴坐标
float cy:圆心点Y轴坐标
float radius:圆的半径
- canvas.drawCircle(150, 150, 100, paint);
椭圆是根据矩形生成的,以矩形的长为椭圆的X轴,矩形的宽为椭圆的Y轴,建立的椭圆图形
void drawOval (RectF oval, Paint paint)
参数:
RectF oval:用来生成椭圆的矩形
弧是椭圆的一部分,而椭圆是根据矩形来生成的,所以弧当然也是根据矩形来生成的;
void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
参数:
RectF oval:生成椭圆的矩形
float startAngle:弧开始的角度,以X轴正方向为0度
float sweepAngle:弧持续的角度
boolean useCenter:是否有弧的两边,True,两边,False,只有一条弧
将画笔设为描边,效果:
- RectF rect1 = new RectF(100, 10, 300, 100);
- canvas.drawArc(rect1, 0, 90, true, paint);
- RectF rect2 = new RectF(400, 10, 600, 100);
- canvas.drawArc(rect2, 0, 90, false, paint);
- 安卓中Paint与Canvas用法
- Android--Paint与Canvas用法
- canvas,paint的用法
- Paint和canvas的用法
- Paint和canvas的用法
- Android Canvas和Paint用法
- android Canvas 和 Paint用法
- 画布Canvas与画笔Paint
- Android Canvas 和Paint的用法
- Android绘图Canvas、Paint类基本用法
- Canvas,Paint
- Paint、Canvas
- Canvas与Paint的初级使用
- Canvas+Paint绘制路径,文字与图形
- Android---绘图机制---Canvas与Paint
- Canvas&Paint[]Paint
- Canvas&Paint[]Canvas:draw
- Android利用canvas画各种图形 及Paint用法
- HDOJ-----1575---Tr A矩阵快速幂
- 读书笔记——《岛上书店》
- Bootloader和BIOS、Grub、uboot概念
- Photoshop学习(六)抠图与图像曝光调整
- 泛型
- 安卓中Paint与Canvas用法
- enum与typedef enum的用法
- 协议森林06 瑞士军刀 (ICMP协议)
- 封装
- virtual 函数的public继承的 的一点问题及理解
- 金融工程——金融工程师的概念工具2
- 继承
- 关于用*号打印三角形问题
- Java EE基础知识2