Android自定義View之paint(一)

學習自定義view,就是將view繪成本身想要的樣子,天然就要有繪畫的工具,那就是Paint。函數

  • **1. 構造函數 ** Paint() Create a new paint with default settings. 建立一個默認的Paint對象 Paint(int flags) Create a new paint with the specified flags. 建立一個指定flag的Paint對象 Paint(Paint paint) Create a new paint, initialized with the attributes in the specified paint parameter 建立一個paint,並在指定的paint參數中初始化屬性
  • 2.flags

ANTI_ALIAS_FLAG //消除鋸齒工具

DITHER_FLAG //防抖動學習

EMBEDDED_BITMAP_TEXT_FLAG //點陣字體字體

FAKE_BOLD_TEXT_FLAG //粗體屬性對象

FILTER_BITMAP_FLAG //圖像過濾blog

HINTING_OFF //關閉字體提示圖片

HINTING_ON //使用字體提示ci

LINEAR_TEXT_FLAG //文本線性縮放文檔

STRIKE_THRU_TEXT_FLAG //文本刪除線get

SUBPIXEL_TEXT_FLAG //文本亞像素

UNDERLINE_TEXT_FLAG //文本下劃

使用方法: new Paint(Paint.flag)或者調用setFlag(int flag)

  • 3.Paint 涉及的幾個類(Nested classes)

enum Paint.Align

Align specifies how drawText aligns its text relative to the [x,y] coordinates. 枚舉 文本方向:CENTER、LEFT(默認)、RIGHT enum Paint.Cap The Cap specifies the treatment for the beginning and ending of stroked lines and paths. 枚舉 筆刷樣式: BUTT(默認) 、ROUND、 SQUARE 如圖:輸入圖片說明

**class Paint.FontMetrics **

Class that describes the various metrics for a font at a given text size. 描述了各類指標在給定的文本字體的大小

  1. 基準點是baseline

  2. Ascent是baseline之上至字符最高處的距離

  3. Descent是baseline之下至字符最低處的距離

  4. Leading文檔說的很含糊,實際上是上一行字符的descent到下一行的ascent之間的距離

  5. Top指的是指的是最高字符到baseline的值,即ascent的最大值

  6. 同上,bottom指的是最下字符到baseline的值,即descent的最大值 爲了方便理解,從網上找個各類圖片 輸入圖片說明

![輸入圖片說明]

輸入圖片說明

輸入圖片說明

輸入圖片說明

![輸入圖片說明]

輸入圖片說明

**class Paint.FontMetricsInt **

輸入圖片說明

一句話 FontMetricsInt就是爲調用者提供將FontMetricsInt 值做爲整數的便捷方法

**enum Paint.Join **

The Join specifies the treatment where lines and curve segments join on a stroked path. 枚舉 鏈接類型:BEVEL、MITER(默認)、ROUND ![![![![![輸入圖片說明

**enum Paint.Style ** The Style specifies if the primitive being drawn is filled, stroked, or both (in the same color). 枚舉 畫筆類型:FILL(默認)、FILL_AND_STROKE、STROKE 輸入圖片說明

從圖上看 前兩個並無什麼區別,畫圖時FILL與STROKE一塊兒使用會達到一下效果

輸入圖片說明

參考連接:http://mikewang.blog.51cto.com/3826268/871765

相關文章
相關標籤/搜索