W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在Android基礎(chǔ)入門教程——8.3.1 三個繪圖工具類詳解Paint的方法參數(shù)那里我們就接觸到 了這樣幾個東西:Paint.Style,Paint.Cap,Paint.Join等,這些都是Paint中的一些枚舉值,相關(guān) 方法我們可以通過設(shè)置這些枚舉值來設(shè)置特定效果比如:Style:畫筆樣式,Join圖形結(jié)合方式等, 本節(jié)我們走進(jìn)Paint的源碼,我們來一一介紹這些枚舉值,另外我們也順道講下這個ShadowLayer 設(shè)置帶陰影效果的Paint!打開Paint類的源碼,我們可以看到下述這些枚舉值:
好了,不BB,開始本節(jié)內(nèi)容!
不知大家對枚舉陌生還是熟悉,這里把貼下Paint.Style相關(guān)的調(diào)用代碼(帶有參構(gòu)造方法的枚舉) ,讓大家體會體會:
public enum Style {
//定義枚舉,通過括號賦值
FILL (0),
STROKE (1),
FILL_AND_STROKE (2);
//有參構(gòu)造方法
Style(int nativeInt) {
this.nativeInt = nativeInt;
}
final int nativeInt;
}
//設(shè)置畫筆Style的方法
public void setStyle(Style style) {
native_setStyle(mNativePaint, style.nativeInt);
}
//JNI設(shè)置畫筆風(fēng)格的方法,這里我們無需關(guān)注
private static native void native_setStyle(long native_object, int style);
下面我們一一來解釋這些枚舉值的作用!
作用:畫筆的樣式 可選值:
- FILL:填充內(nèi)部(默認(rèn))
- STROKE:只描邊
- FILL_AND_STROKE:填充內(nèi)部與描邊
方法調(diào)用:setStyle(Paint.Style style) 對應(yīng)效果:
作用:筆觸風(fēng)格,設(shè)置畫筆始末端的圖形(畫筆開始畫的第一點(diǎn)與最后一點(diǎn)) 可選值:
- BUTT:筆觸是長方形且不超過路徑(默認(rèn))
- ROUND:筆觸是圓形
- SQUARE:筆觸是正方形
方法調(diào)用:setStrokeCap(Paint.Cap cap)
對應(yīng)效果:平時我們直接畫的是第一個,其他兩個會比普通的多一點(diǎn)而外的區(qū)域,第二個 是圓角,第三個是矩形!
作用:設(shè)置接合處的狀態(tài),比如你的線是由多條小線拼接而成,拼接處的形狀 可選值:
- MITER:接合處為銳角(默認(rèn))
- ROUND:接合處為圓弧
- BEVEL:接合處為直線
方法調(diào)用:setStrokeJoin(Paint.Join join)
一般圓弧用得多,可參見之前的擦掉美女衣服Demo的顯示
另外還有個setStrokeMiter(float miter)是設(shè)置筆畫的傾斜度,miter > = 0; 如:小時候用的鉛筆,削的時候斜與垂直削出來的筆尖效果是不一樣的。 主要是用來設(shè)置筆觸的連接處的樣式??梢院蛃etStrokeJoin()來比較比較。
作用:設(shè)置繪制文本的對其方式,就是相對于繪制文字的[x,y]起始坐標(biāo) 可選值:
- LEFT:在起始坐標(biāo)的左邊繪制文本
- RIGHT:在起始坐標(biāo)的右邊繪制文本
- CENTER:以其實坐標(biāo)為中心繪制文本
方法調(diào)用:setTextAlign(Paint.Align align)
對應(yīng)效果:另外可調(diào)用setTextSize()設(shè)置繪制文本的大小~
字體屬性及測量,另外這兩個方法是一樣的,只是后者取到的值是一個整形, 這里我們選FontMetricsInt來給大家講解下,有下面這五個常量值,這里參考的基準(zhǔn)點(diǎn)是: 下劃線的位置(Baseline)
- top:最高字符到baseline的距離,即ascent的最大值
- ascent:字符最高處的距離到baseline的值
- descent:下劃線到字符最低處的距離
- bottom:下劃線到最低字符的距離,即descent的最大值
- leading:上一行字符的descent到下一行的ascent之間的距離
我們看幾個圖幫助理解下:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: