Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> 自定義控件詳解(2):Path類 相關用法

自定義控件詳解(2):Path類 相關用法

編輯:Android開發教程

自定義控件詳解(二):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的縮寫,指創建順時針方向的矩形路徑;

 

很簡單可以看出這個參數其實就是控制我們繪制一個圖形是 順時針繪制的還是逆時針繪制的

現在我們給繪制的時候加上文本,就可以輕松看出繪制的順序了

 

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

 

 

   參考代碼

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved