Path:路径

绘制路径:void drawPath (Path path, Paint paint)

Path 可以绘制的路径

一、直线路径

  1、基本方法      

      void moveTo (float startX, float startY)
        直线的开始点;即将直线路径的绘制点定在(startX,startY)的位置;
      void lineTo (float endX, float endY)
        直线的结束点,又是下一次绘制直线路径的开始点;
      void close ()
        如果连续画了几条直线,但没有形成闭环,调用Close()会将路径首尾点连接起来,形成闭环;

   ①、不形成闭环

       ------------>             

   ②、形成闭环 ,可以看到首尾两个坐标之间闭合了一条直线

    ------------>  

 二、矩形路径

1、基本方法 

    void addRect (float left, float top, float right, float bottom, Path.Direction dir)
    void addRect (RectF rect, Path.Direction dir)     RectF rect = new RectF(float left, float top, float right, float bottom);

   可见两个方法类似。  

    这里有一个 Path.Direction dir 参数, 翻译一下就是:路径绘制的方向

   有两个系统值:

          (1)、Path.Direction.CCW:是counter-clockwise缩写,指创建逆时针方向的矩形路径;
          (2)、Path.Direction.CW:是clockwise的缩写,指创建顺时针方向的矩形路径;

  

  注意点:RectF 和 Rect 类 的区别

      1、都表示矩形

      2、精度不一样,Rect是int ,RectF是float

      3、矩形路径用到的是RectF类,注意不要使用Rect类

        

                   ------------>       

三、圆形路径

1、基本方法   

    void addCircle (float x, float y, float radius, Path.Direction dir)

   就一个方法,参数很显然: x 圆心X轴坐标 ,y 圆心Y轴坐标 ,radius 圆的半径 ,dir 绘制圆形路径的方向

 

            ------------>       

四、椭圆路径

1、基本方法

void addOval (RectF oval, Path.Direction dir)
RectF rect = new RectF(float left, float top, float right, float bottom);

  可以发现和绘制矩形路径类似 用到了RectF类

  注意四个参数的意义

  

                      ------------>      

五、弧形路径

1、基本方法

void addArc (RectF oval, float startAngle, float sweepAngle)

  两个参数的意义:

          ①、float startAngle:开始的角度,X轴正方向为0度
          ②、float sweepAngel:持续的度数;

    画一个X轴正方形开始的(0°),持续270°的 弧形

  

                          ------------>       

六、圆角矩形路径

1、基本方法 

    void addRoundRect (RectF rect, float[] radii, Path.Direction dir)
    void addRoundRect (RectF rect, float rx, float ry, Path.Direction dir)

  这里有两个方法:

    ①、 void addRoundRect (RectF rect, float[] radii, Path.Direction dir)

       可以看到多了一个float[] radii 参数,这个参数控制的是圆形矩形四个角的圆形程度,每一个角又由一个X轴半径和一个Y轴半径控制

       所以这个数组参数必须要有8个值 ,这个方法能控制生成的圆角矩形各个角的圆形程度都不一样

       从左上角开始 顺时针 每两个值控制一个角

       下面例子看到看到 从左上角瞬时间开始角的程度分别为 5px,10px,15px,20px

                 ------------>   

    ②、void addRoundRect (RectF rect, float rx, float ry, Path.Direction dir)

     这个方法更简单,只要控制一次x,y轴半径,让四个角统一的设置一次就行

     如下图,每一个角的程度都一致

                 ------------>   

------------------------------------------------------------------------------------------------------------------------------

以上是路径的各种绘制方法,接下来讲一下 路径绘制基本都要用到的参数  

1、Path.Direction.CCW:是counter-clockwise缩写,指创建逆时针方向的矩形路径;

2、Path.Direction.CW:是clockwise的缩写,指创建顺时针方向的矩形路径;

很简单可以看出这个参数其实就是控制我们绘制一个图形是 顺时针绘制的还是逆时针绘制的

现在我们给绘制的时候加上文本,就可以轻松看出绘制的顺序了

       ----------->        

   参考代码

自定义控件详解(二):Path类 相关用法的更多相关文章

  1. WindowsPhone自定义控件详解(二) - 模板类库分析

    转自:http://blog.csdn.net/mr_raptor/article/details/7251948 WindowsPhone自定义控件详解(一) - 控件类库分析 上一节主要分析了控件 ...

  2. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

  3. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

  4. PopUpWindow使用详解(二)——进阶及答疑

      相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...

  5. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  6. 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法

    第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一.    案例说明 本节定义了类Sta ...

  7. Shiro 安全框架详解二(概念+权限案例实现)

    Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...

  8. CSS选择器详解(伪类) 转 http://blog.csdn.net/Panda_m/article/details/50084699

    CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...

  9. 《Android群英传》读书笔记 (2) 第三章 控件架构与自定义控件详解 + 第四章 ListView使用技巧 + 第五章 Scroll分析

    第三章 Android控件架构与自定义控件详解 1.Android控件架构下图是UI界面架构图,每个Activity都有一个Window对象,通常是由PhoneWindow类来实现的.PhoneWin ...

随机推荐

  1. 你可能不知道的BFC在实际中的应用

    概述 BFC是块级格式化上下文,它的一个令人熟知的运用是双飞翼布局或者两列布局.但其实它在其它地方也有很巧妙的运用.我把研究的心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资料: mdn块 ...

  2. 用document.readyState实现网页加载进度条

    概述 之前以为给网页设置加载进度条很麻烦,今天一学真是超级简单,记录下来供以后开发时参考,相信对其他人也有用. readyState 主要运用了document.readyState和nprogres ...

  3. kubernetes集群搭建(7):常见问题及处理

    尤其在创建pod的时候,会遇见各类问题,请通过下列命令来查看错误详情 kubectl describe pod xxxxxx 1.问题现象:镜像始终获取不下来 解决办法:为docker设置镜像源 [r ...

  4. Swing中的线程并发处理

    理论解释见官方的文档: https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html 一个Swing程序中一般有下面三种 ...

  5. 在浏览器中输入www.baidu.com后执行的全部过程

    1.客户端浏览器通过DNS解析到www.baidu.com 的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径.客户端浏览器发起一个HTTP会话到220.181.27.48 ...

  6. python unittest单元测试

    unittest单元测试框架:包含测试用例编写.测试收集\测试用例加载.执行测试用例.生成测试用例报告,同时,更提供了添加断言,异常处理等. 第一:创建测试类,创建测试用例 第二:收集测试用例,加载测 ...

  7. 关于Python的import机制原理

    很多人用过python,不假思索地在脚本前面加上import module_name,但是关于import的原理和机制,恐怕没有多少人真正的理解.本文整理了Python的import机制,一方面自己总 ...

  8. canvas图片上传相关学习

    今天主要是研究了canvas的关于图片上传的相关知识, context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);  

  9. 第六章:声明式服务调用:Spring Cloud Feign

    Spring Cloud Feign 是基于 Netflix Feign 实现的,整合了 Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了提供这两者的强大功能 ...

  10. 音频标签化1:audioset与训练模型 | 音频特征样本

    随着机器学习的发展,很多"历史遗留"问题有了新的解决方案.这些遗留问题中,有一个是音频标签化,即如何智能地给一段音频打上标签的问题,标签包括"吉他"." ...