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坐标

如:

  1. canvas.drawLine(100, 100, 200, 200, paint);
  2. 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,……}

  3. 如:
    1. float []pts={10,10,100,100,200,200,400,400};
    2. 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坐标

如:

  1. canvas.drawPoint(100, 100, paint);
  2. 多个点:
  3. void drawPoints (float[] pts, Paint paint)
    void drawPoints (float[] pts, int offset, int count, Paint paint)
  4. 参数:
    float[] pts:点的合集,与上面直线一直,样式为{x1,y1,x2,y2,x3,y3,……}
    int offset:集合中跳过的数值个数,注意不是点的个数!一个点是两个数值;
    count:参与绘制的数值的个数,指pts[]里人数值个数,而不是点的个数,因为一个点是两个数值

    下面举例说明上面offset与count的含义:(跳过第一个点,画出后面两个点,第四个点不画),注意一个点是两个数值!

    如:

    1. float []pts={10,10,100,100,200,200,400,400};
    2. canvas.drawPoints(pts, 2, 4, paint);
    3. (同样是上面的四个点:(10,10)、(100,100),(200,200),(400,400),drawPoints里路过前两个数值,即第一个点横纵坐标,画出后面四个数值代表的点,即第二,第三个点,第四个点没画;效果图如下)
    矩形工具类RectF与Rect:
  5. 这两个都是矩形辅助类,区别不大,用哪个都行,根据四个点构建一个矩形结构;在画图时,利用这个矩形结构可以画出对应的矩形或者与其它图形Region相交、相加等等;


void drawRect (float left, float top, float right, float bottom, Paint paint)
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轴半径

  1. RectF rect = new RectF(100, 10, 300, 100);
  2. canvas.drawRoundRect(rect, 20, 10, paint);

圆形:void drawCircle (float cx, float cy, float radius, Paint paint)
参数:
float cx:圆心点X轴坐标 
float cy:圆心点Y轴坐标
float radius:圆的半径
  1. 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,只有一条弧

将画笔设为描边,效果:

  1. RectF rect1 = new RectF(100, 10, 300, 100);
  2. canvas.drawArc(rect1, 0, 90, true, paint);
  3. RectF rect2 = new RectF(400, 10, 600, 100);
  4. canvas.drawArc(rect2, 0, 90, false, paint);










安卓中Paint与Canvas用法相关推荐

  1. 安卓中Paint类和Canvas类的方法汇总

    Paint类的常用的方法 1.setColor方法,用于设置画笔的颜色, public void setColor(int color)//参数color为颜色值,也可以使用Color类定义的颜色 C ...

  2. java中paint_java中paint()的具体用法是什么?

    展开全部 1.这个方法需要注意62616964757a686964616fe58685e5aeb931333365646232的地方不多,也就是重写时,先调用 super.paint(g) 方法 .p ...

  3. 介绍Android中的Paint和Canvas的概念和使用方法

    下面开始正式介绍内容 一.介绍Android中的Paint和Canvas的概念和使用方法 Android中的Paint和Canvas的概念是很简单的,就是我们用画笔在画布上进行绘制没什么难度的,我们只 ...

  4. android 自定义paint,Android中自定义常用的三个对象解析(Paint,Color,Canvas)

    Paint,Color,Canvas Paint:画笔对象,画图用的"笔" Color:颜色,相当于调料 Canvas:画布,现实中的纸板 Paint 画笔 常用的方法就是设置和获 ...

  5. 安卓中Canvas使用方法

    更多技术内容请移步:我的个人博客 一.前言 今天是周日,昨天刚刚写完了一篇关于如何搭建LNMP环境,让自己可以DIY有个性的个人主页: http://blog.csdn.net/jiangwei091 ...

  6. android 自定义paint,Android自定义View中Paint、Rect、Canvas介绍(一)

    自定义View对于新手而言貌似是一个很复杂的东西.格式,各函数的意义.对于大神经常忘记各函数及一些参数的具体写法及意义,刚好在做一个风车效果,把过程及遇到的问题都写下来 1.如何自定义一个View p ...

  7. Android的Paint和Canvas的使用总结

    前言: 在自定义控件时,我们有时可能会用到Paint和Canvas这两个类, Paint相当于我们在画画时的画笔,Canvs相当于我们在画画时的画布, 下面来简单讲一下这两个类常见的一些用法 Pain ...

  8. Android画图最基本的三个对象(Color,Paint,Canvas)

    Android画图最基本的三个对象(Color,Paint,Canvas) 三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 '调料' 2) Pa ...

  9. java paint文字_Java中paint怎么用

    详细内容 paint方法的用法:在Java文件中的第一个类要继承Jframe或者JPanel,然后再写一个构造方法进行初始化窗口,通过main方法调用该构造方法,最后通过paint方法进行画图 [推荐 ...

最新文章

  1. 测度论与概率论有什么关系?为什么要学习测度论?
  2. goLand工程结构管理
  3. ubuntu16.04安装OVS(Open vSwitch)
  4. 图像的存储格式转化(python实现)
  5. python opencv报错_OpenCV in Python 入门问题,python报错 -问答-阿里云开发者社区-阿里云...
  6. Golang——多种运算符及优先级
  7. Django Rest Framework源码剖析(七)-----分页
  8. 2012-13学年上半学期路由与交换课程设计-作业-2
  9. Android 四大组件学习之Activity一
  10. 博时基金的大数据平台建设之道
  11. PID调节参数的作用
  12. conda安装编译好了的caffe, ImportError: cannot import name ‘_validate_lengths‘
  13. 《数据挖掘导论》读书笔记(一) -27
  14. 将ppt转换成html文件格式,如何将幻灯片.pptx格式转换成.ppt格式
  15. 绝密计划:我在阿里打黑工
  16. 2022年江西二级建造师矿业工程施工技术综合测试题及答案
  17. Zabbix -- 客户端安装以及如何添加数据库的动态监控视图
  18. 创建jira sprint_如何在Excel中创建高级sprint燃尽图
  19. Liferay的学习
  20. OCA/OCP Oracle 数据库12c考试指南读书笔记:第27章: Duplicating a Database

热门文章

  1. AD18如何制作logo
  2. Excel的照相机功能(转载+亲自实践)
  3. 基层管理者必备的能力和素质
  4. 超声波风速风向传感器的测量原理
  5. 当面试问到自己有哪些缺点应该怎么回答
  6. 1.amdahl定律(加速比)
  7. vue项目对接钉钉企业内部H5微应用
  8. 如何禁止ie打开本地网页文件时的安全提示
  9. 常见前端面试题之盒子模型
  10. 【安卓开发系列 -- APP 】APP 性能优化 -- 崩溃分析