close

Paint 是要在 Andriod 中繪圖時必要的物件
以現實生活來說
Paint 其實就是一支畫筆
所以在 Android 的世界中
還有一個類,叫做 Canvas

 

想了解 Canvas 請點我

 

而這一個 Paint 可不是普通的畫筆
這個畫筆有很多功能可供我們使用
今天我們就是要來解析一下這支神奇畫筆有什麼功能囉!!

 

點我看看官方的 Paint method

 

set(Paint src)

copy 一支畫筆的 set 給另一支

 

===================================================

setARGB(int a, int r, int g, int b)

set 顏色,a是透明度,rgb則是顏色值

 

===================================================

setAlpha(int a)

set 透明度,0~255

 

===================================================

setAntiAlias(boolean aa)

是否抗鋸齒

 

===================================================

setColor(int color)

set颜色

 

===================================================

setColorFilter (ColorFilter filter)

set顏色過濾,就像修圖軟體的濾鏡等功能


想了解更多請點擊我看更詳細介紹ColorMatrixColorFilter、LightingColorFilter和PorterDuffColorFilter

 

===================================================

setDither(boolean dither)

是否開啟抗抖動(讓兩色之間的漸層色更細膩,平滑、飽滿,使圖像更清晰

 

===================================================

setFakeBoldText(boolean fakeBoldText)

set文字為粗體

 

===================================================

setFilterBitmap(boolean filter)

進行濾波處理,如設為true,則圖像在動畫中會濾掉對bitmap 的優化,加快顯示速度

 

===================================================

setHinting (int mode)

Added in API level 14,set 畫筆的隱藏模式有HINTING_OFF 或 HINTING_ON兩種

 

===================================================

setLetterSpacing (float letterSpacing)

Added in API level 21,set 文字間距,預設為0,負數則收緊間距

 

===================================================

setLinearText(boolean linearText)

Android 中,繪制文字時需要用一個bitmap 做為單個字符的緩存,set 為 true 的話,意思是不需要該緩存

 

===================================================

setMaskFilter (MaskFilter maskfilter)

MaskFilter有兩個子類實現
BlurMaskFilter(模糊陰影效果)
EmbossMaskFilter(立體浮雕效果)

想了解更多請點擊我

 

===================================================

setPathEffect(PathEffect effect)

set 路徑效果,PathEffect有6個子類
ComposePathEffect, CornerPathEffect, DashPathEffect
DiscretePathEffect, PathDashPathEffect, SumPathEffect

 

效果如下:

 

想了解更多可點擊我

 

===================================================

setShader(Shader shader)

set着色器
BitmapShader      渲染
ComposeShader   混合
LinearGradient     線性漸變
RadialGradient     中心向外發散的輻射漸變
SweepGradient    以某中心點做360度的旋轉漸變

 

想了解更多可點擊我

 

===================================================

setShadowLayer(float radius, float dx, float dy, int shadowColor)

簡單點的BlurMaskFilter ,能為圖形加上一層陰影效果
radius為陰影的擴散半徑,dx & dy 陰影的偏移值,最後一項是陰影顏色


{ 此method 不支援硬件加速,需要先關閉
---setLayerType(LAYER_TYPE_SOFTWARE, null); }

 

===================================================

setStrikeThruText (boolean strikeThruText)

set 刪除線

 

===================================================

setStrokeCap (Paint.Cap cap)

當我們的 setStyle 是 Stroke 或 StrokeAndFill 時
可用此method 設定畫筆的筆觸
假設現實中的畫筆點一點,則Cap.ROUND會變圓點,而Cap.SQUARE則為方形的點。

 

===================================================

setStrokeMiter (float miter)

當我們的 setStyle 是 Stroke 或 StrokeAndFill 時,可以設置畫筆傾斜度
就像我們小時候的鉛筆,削出來的平面可以是不一樣的

 

===================================================

setStrokeWidth (float width)

當style是 STROKE 或 FILL_OR_STROKE 時,設定畫筆的粗细

 

===================================================

setStyle (Paint.Style style)

畫筆樣式有三種:
Paint.Style.STROKE:                 描邊
Paint.Style.FILL_AND_STROKE:  描邊與填充
Paint.Style.FILL:                       填充

 

===================================================

setSubpixelText (boolean subpixelText)

幫助文字在LCD上的顯示效果

 

===================================================

setTextAlign(Paint.Align align)

文字對齊

 

===================================================

setTextScaleX(float scaleX)

文字縮放倍數,原始為1.0f

 

===================================================

setTextSize(float textSize)

字體大小

 

===================================================

setTextSkewX (float skewX)

斜體,skewX傾斜度,預設為0,大於0,向左斜,小於0,向右斜

 

===================================================

setTypeface(Typeface typeface)

設定字型,Typeface 包含了字體的類型,粗細,傾斜,顏色…等。

 

===================================================

setUnderlineText(boolean underlineText)

設置下劃線

 

===================================================

setXfermode (Xfermode xfermode)

設定圖像混合模式,Xfermode 有個子類去實現 PorterDuffXfermode

想了解更多請點擊我

 

===================================================


以上就是 Paint 的解說了
如果還有不懂的地方
下方還有我的參考資料
那麼我們趕快來用用看 Paint 吧 !!



參考資料:
https://developer.android.com/reference/android/graphics/Paint.html
http://wuxiaolong.me/2016/08/20/Paint/
http://www.cnblogs.com/tianzhijiexian/p/4297170.html
http://www.cnblogs.com/tianzhijiexian/p/4297104.html
http://www.cnblogs.com/tianzhijiexian/p/4297734.html
http://www.cnblogs.com/tianzhijiexian/p/4297783.html
http://www.cnblogs.com/tianzhijiexian/p/4298660.html
http://blog.csdn.net/iispring/article/details/50472485


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 顏澤偉 的頭像
    顏澤偉

    Willy's Fish教學筆記』

    顏澤偉 發表在 痞客邦 留言(0) 人氣()