zoukankan      html  css  js  c++  java
  • 自定义控件详解(二):Path类 相关用法

    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的缩写,指创建顺时针方向的矩形路径;

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

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

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

       参考代码

  • 相关阅读:
    《Advanced Bash-scripting Guide》学习(十九):两个整数的最大公约数
    《Advanced Bash-scripting Guide》学习(十八):[[ ]]与[ ]的一些特殊情况
    《Advanced Bash-scripting Guide》学习(十七):用more来查看gzip文件
    《Advanced Bash-scripting Guide》学习(十六):一个显示输入类型的脚本
    《Advanced Bash-scripting Guide》学习(十五):测试坏的链接文件(broken link)
    《Advanced Bash-scripting Guide》学习(十四):HERE Document和cat <<EOF
    《Advanced Bash-scripting Guide》学习(十三):引用变量的两个例子
    NOIP2016 蚯蚓
    [SCOI2012]滑雪与时间胶囊
    NOIP2016 天天爱跑步 80分暴力
  • 原文地址:https://www.cnblogs.com/xqxacm/p/6656554.html
Copyright © 2011-2022 走看看