安卓中Paint与Canvas用法
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 :填充内部
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); //这两个功能一样,都是用来设置背景颜色的。
画直线 void drawLine (float startX, float startY, float stopX, float stopY, Paint paint)
参数:
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)),两两连成一条直线
点:drawPoint (float x, float y, Paint paint)
参数:
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用法相关推荐
- 安卓中Paint类和Canvas类的方法汇总
Paint类的常用的方法 1.setColor方法,用于设置画笔的颜色, public void setColor(int color)//参数color为颜色值,也可以使用Color类定义的颜色 C ...
- java中paint_java中paint()的具体用法是什么?
展开全部 1.这个方法需要注意62616964757a686964616fe58685e5aeb931333365646232的地方不多,也就是重写时,先调用 super.paint(g) 方法 .p ...
- 介绍Android中的Paint和Canvas的概念和使用方法
下面开始正式介绍内容 一.介绍Android中的Paint和Canvas的概念和使用方法 Android中的Paint和Canvas的概念是很简单的,就是我们用画笔在画布上进行绘制没什么难度的,我们只 ...
- android 自定义paint,Android中自定义常用的三个对象解析(Paint,Color,Canvas)
Paint,Color,Canvas Paint:画笔对象,画图用的"笔" Color:颜色,相当于调料 Canvas:画布,现实中的纸板 Paint 画笔 常用的方法就是设置和获 ...
- 安卓中Canvas使用方法
更多技术内容请移步:我的个人博客 一.前言 今天是周日,昨天刚刚写完了一篇关于如何搭建LNMP环境,让自己可以DIY有个性的个人主页: http://blog.csdn.net/jiangwei091 ...
- android 自定义paint,Android自定义View中Paint、Rect、Canvas介绍(一)
自定义View对于新手而言貌似是一个很复杂的东西.格式,各函数的意义.对于大神经常忘记各函数及一些参数的具体写法及意义,刚好在做一个风车效果,把过程及遇到的问题都写下来 1.如何自定义一个View p ...
- Android的Paint和Canvas的使用总结
前言: 在自定义控件时,我们有时可能会用到Paint和Canvas这两个类, Paint相当于我们在画画时的画笔,Canvs相当于我们在画画时的画布, 下面来简单讲一下这两个类常见的一些用法 Pain ...
- Android画图最基本的三个对象(Color,Paint,Canvas)
Android画图最基本的三个对象(Color,Paint,Canvas) 三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 '调料' 2) Pa ...
- java paint文字_Java中paint怎么用
详细内容 paint方法的用法:在Java文件中的第一个类要继承Jframe或者JPanel,然后再写一个构造方法进行初始化窗口,通过main方法调用该构造方法,最后通过paint方法进行画图 [推荐 ...
最新文章
- 测度论与概率论有什么关系?为什么要学习测度论?
- goLand工程结构管理
- ubuntu16.04安装OVS(Open vSwitch)
- 图像的存储格式转化(python实现)
- python opencv报错_OpenCV in Python 入门问题,python报错
-问答-阿里云开发者社区-阿里云...
- Golang——多种运算符及优先级
- Django Rest Framework源码剖析(七)-----分页
- 2012-13学年上半学期路由与交换课程设计-作业-2
- Android 四大组件学习之Activity一
- 博时基金的大数据平台建设之道
- PID调节参数的作用
- conda安装编译好了的caffe, ImportError: cannot import name ‘_validate_lengths‘
- 《数据挖掘导论》读书笔记(一) -27
- 将ppt转换成html文件格式,如何将幻灯片.pptx格式转换成.ppt格式
- 绝密计划:我在阿里打黑工
- 2022年江西二级建造师矿业工程施工技术综合测试题及答案
- Zabbix -- 客户端安装以及如何添加数据库的动态监控视图
- 创建jira sprint_如何在Excel中创建高级sprint燃尽图
- Liferay的学习
- OCA/OCP Oracle 数据库12c考试指南读书笔记:第27章: Duplicating a Database