標籤:android 圖片
Lee出品,本文屬個人所有,轉載請聲明出處。
網上查了很多資料,對paint的裡面的枚舉類cap join講的不是很透徹。在這裡自己做一個比較深入的研究。
首先說Cap,比較形象的解釋就是 用來控制我們的畫筆在離開畫板時候留下的最後一點圖形,比如矩形,圓形等。不懂?那接著往下看。
先看看源碼:
/** * The Cap specifies the treatment for the beginning and ending of * stroked lines and paths. The default is BUTT. */ public enum Cap { /** * The stroke ends with the path, and does not project beyond it. */ BUTT (0), /** * The stroke projects out as a semicircle, with the center at the * end of the path. */ ROUND (1), /** * The stroke projects out as a square, with the center at the end * of the path. */ SQUARE (2); private Cap(int nativeInt) { this.nativeInt = nativeInt; } final int nativeInt; }
這是cap的源碼,從源碼我們看到BUTT是預設的設定,但是我們看不出BUTT、ROUND、SQUARE的區別。
下面看幾張圖片,我想足以理解Cap的用途。
上表就是三種樣式的區別,豎線處即為畫筆結束處,圖中區別明顯,在此不再贅述。
接著我們看Join,Join的理解也很容易,他是用來控制畫的圖形接觸時候的樣式的。
看源碼:
/** * The Join specifies the treatment where lines and curve segments * join on a stroked path. The default is MITER. */ public enum Join { /** * The outer edges of a join meet at a sharp angle */ MITER (0), /** * The outer edges of a join meet in a circular arc. */ ROUND (1), /** * The outer edges of a join meet with a straight line */ BEVEL (2); private Join(int nativeInt) { this.nativeInt = nativeInt; } final int nativeInt; }
和Cap類似,看源碼也就看出了預設是MITER,其他具體形狀還是難以理解。接著看圖:
上表就是三種樣式的區別,區別明顯,在此不再贅述。
android paint cap join 理解 圖示