Android Paint 你完全都了解了嗎(二)

承接上文Android Paint 你完全都了解了嗎(一)

2、效果

Paint效果類Api

2.1、setAntiAlias設(shè)置抗鋸齒

paint.setAntiAlias(boolean alias)設(shè)置抗鋸齒,默認關(guān)閉;或在實例化時設(shè)置Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

2.2、setStyle 設(shè)置填充模式

Paint.Style一共有三種填充模式
Paint.Style.FILL:填充
Paint.Style.STROKE:畫線
Paint.Style.FILL_AND_STROKE:畫線+填充

2.3、線條形狀
  • setStrokeWidth 設(shè)置線條的寬度,單位為px默認為0,使用0時不管圖像放大,縮小寬度都默認為1px;

  • setStrokeCap 設(shè)置線頭的形狀。線頭形狀有三種:BUTT 平頭、ROUND 圓頭、SQUARE 方頭。默認為 BUTT。

  • setStrokeJoin 設(shè)置拐角的形狀。拐角形狀有三種::MITER 尖角、 BEVEL 平角和 ROUND 圓角。默認為 MITER。

  • setStrokeMiter(float miter) setStrokeJoin()中MITER 型拐角的設(shè)置,用于設(shè)置 MITER 型拐角的延長線的最大值,拐角公式float miter = strokeWidth / sin(拐角/2)

2.4、色彩優(yōu)化
  • setDither(boolean dither) 設(shè)置圖像的抖動

  • setFilterBitmap 設(shè)置是否使用雙線性過濾來繪制 Bitmap,放大Bitmap時效果更平滑。

2.5、setPathEffect 設(shè)置輪廓

為drawxxx()方法繪制的圖形添加輪廓,PathEffect有6種 CornerPathEffect DiscretePathEffect DashPathEffect PathDashPathEffect 和組合效果的 SumPathEffect ComposePathEffect。

  • CornerPathEffect 將拐角變?yōu)閳A角。CornerPathEffect(float radius);
    參數(shù)為圓角的大??;

  • DiscretePathEffect 將線條隨機偏離打亂。DiscretePathEffect(float segmentLength, float deviation) segmentLength多少長度進行偏移,deviation偏移的距離;

  • DashPathEffect 虛線繪制線條。DashPathEffect(float intervals[], float phase) intervals[] 設(shè)置虛線的格式畫、空、畫、空,phase虛線的偏移量;

  • PathDashPathEffect 使用Path繪制虛線。PathDashPathEffect(Path shape, float advance, float phase,PathDashPathEffect.Style style)
    參數(shù):
    Path shape:路徑
    float advance:是兩個相鄰的 shape 段之間的間隔
    float phase:是虛線的偏移
    PathDashPathEffect.Style:虛線的格式TRANSLATE:位移,ROTATE:旋轉(zhuǎn),MORPH:變體

  • SumPathEffect 組合效果類的 PathEffect,分別按照傳入的兩種PathEffect進行繪制;

  • ComposePathEffect 組合效果類的 PathEffect。先對目標 Path 使用一個 PathEffect,然后再對這個改變后的 Path 使用另一個 PathEffect。

2.6、setShadowLayer 在圖形下繪制陰影

paint.setShadowLayer(float radius, float dx, float dy, int shadowColor)
參數(shù):
float radius:陰影的模糊范圍
float dx:陰影的偏移量x
float dy:陰影的偏移量y
清除陰影clearShadowLayer();

2.7、setMaskFilter 設(shè)置在圖形上層的效果
  • BlurMaskFilter 模糊效果。
    BlurMaskFilter(float radius, Blur style)
    float radius:模糊的范圍;
    Blur style:模糊的類型有四種;NORMAL: 內(nèi)外都模糊繪制,SOLID: 內(nèi)部正常繪制,外部模糊,INNER: 內(nèi)部模糊,外部不繪制,OUTER: 內(nèi)部不繪制,外部模糊

  • EmbossMaskFilter 浮雕效果(刪除)

2.8、獲取繪制的Path
  • getFillPath(Path src, Path dst) src 為源Path,PathEffect之前的Path通過getFillPath得出實際的Path存入dst;

  • getTextPath(String text, int start, int end, float x, float y, Path path) getTextPath(char[] text, int index, int count, float x, float y, Path path)
    獲取文字的繪制Path

3、初始化類

  • reset() 重置Paint
  • set(Paint src) 復(fù)制一個Paint的所有屬性
  • setFlags(int flags) 批量設(shè)置flags 屬性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 系列文章之 Android中自定義View(一)系列文章之 Android中自定義View(二)系列文章之 And...
    YoungerDev閱讀 2,334評論 0 4
  • Paint 屬性分類 顏色 效果 drawText() 相關(guān) 初始化 1 顏色 Canvas 繪制的內(nèi)容,有三層...
    黑色海鷗閱讀 627評論 0 8
  • 還有兩天,我就要走了。一個人,拉著笨重的行李箱,空蕩蕩的走了。我要坐上在西漢高速上疾馳的大巴,離開這個小村莊,離開...
    煙華熠熠閱讀 642評論 0 1
  • 生活究竟是為了什么?是為了活著?還是為了活的有意義? 生活這個詞在不同時代,肯定包含的意義是不同的。像以前溫飽還無...
    黑的白的黑閱讀 292評論 0 4
  • 今晚月色真美啊 你要和我一起看嗎 算了,其實今天多云 睡吧,晚安
    左右小姐_閱讀 182評論 0 1

友情鏈接更多精彩內(nèi)容