Paint 是要在 Andriod 中繪圖時必要的物件
以現實生活來說
Paint 其實就是一支畫筆
所以在 Android 的世界中
還有一個類,叫做 Canvas
而這一個 Paint 可不是普通的畫筆
這個畫筆有很多功能可供我們使用
今天我們就是要來解析一下這支神奇畫筆有什麼功能囉!!
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
留言列表