Android 自定義view時(shí)庶诡,paint類(lèi)的常用方法

一: Paint 類(lèi)

**1.圖形繪制 **

setAntiAlias();
設(shè)置畫(huà)筆的鋸齒效果

setColor();
設(shè)置畫(huà)筆的顏色

setARGB();
設(shè)置畫(huà)筆的A芬沉、R雌团、G、B值

setAlpha();
設(shè)置畫(huà)筆的Alpha值

setTextSize();
設(shè)置字體的尺寸

setStyle();
設(shè)置畫(huà)筆的風(fēng)格(空心Fill 或?qū)嵭膕troke)

setStrokeWidth();
設(shè)置空心邊框的寬度

setDither()
設(shè)定是否使用圖像抖動(dòng)處理甚颂,會(huì)使繪制出來(lái)的圖片顏色更加平滑和飽滿(mǎn)蜜猾,圖像更加清晰

setStrokeCap(Paint.Cap cap);
當(dāng)畫(huà)筆樣式為STROKE或FILL_OR_STROKE時(shí),設(shè)置筆刷的圖形樣式振诬,如圓形樣式 Cap.ROUND,或方形樣式Cap.SQUARE

setSrokeJoin(Paint.Join join);
設(shè)置繪制時(shí)各圖形的結(jié)合方式蹭睡,如平滑效果等

setXfermode(Xfermode xfermode);
設(shè)置圖形重疊時(shí)的處理方式,如合并赶么,取交集或并集肩豁,經(jīng)常用來(lái)制作橡皮的擦除效果

setFilterBitmap(boolean filter);
如果該項(xiàng)設(shè)置為true,則圖像在動(dòng)畫(huà)進(jìn)行中會(huì)濾掉對(duì)Bitmap圖像的優(yōu)化操作辫呻,加快顯示速度清钥,本設(shè)置項(xiàng)依賴(lài)于dither和xfermode的設(shè)置

setMaskFilter(MaskFilter maskfilter);
設(shè)置MaskFilter,可以用不同的MaskFilter實(shí)現(xiàn)濾鏡的效果放闺,如濾化祟昭,立體等

setColorFilter(ColorFilter colorfilter);
設(shè)置顏色過(guò)濾器,可以在繪制顏色時(shí)實(shí)現(xiàn)不用顏色的變換效果

setPathEffect(PathEffect effect);
設(shè)置繪制路徑的效果怖侦,如點(diǎn)畫(huà)線(xiàn)等

setShader(Shader shader);
設(shè)置圖像效果篡悟,使用Shader可以繪制出各種漸變效果

setShadowLayer(float radius ,float dx,float dy,int color);
在圖形下面設(shè)置陰影層谜叹,產(chǎn)生陰影效果,radius為陰影的角度搬葬,dx和dy為陰影在x軸和y軸上的距離荷腊,color為陰影的顏色

**2.文本繪制 **
setFakeBoldText(boolean fakeBoldText);
模擬實(shí)現(xiàn)粗體文字,設(shè)置在小字體上效果會(huì)非常差

setSubpixelText(boolean subpixelText);
設(shè)置該項(xiàng)為true急凰,將有助于文本在LCD屏幕上的顯示效果

setTextAlign(Paint.Align align);
設(shè)置繪制文字的對(duì)齊方向

setTextScaleX(float scaleX);
設(shè)置繪制文字x軸的縮放比例女仰,可以實(shí)現(xiàn)文字的拉伸的效果

setTextSize(float textSize);
設(shè)置繪制文字的字號(hào)大小

setTextSkewX(float skewX);
設(shè)置斜體文字,skewX為傾斜弧度

setTypeface(Typeface typeface);
設(shè)置Typeface對(duì)象抡锈,即字體風(fēng)格疾忍,包括粗體,斜體以及襯線(xiàn)體企孩,非襯線(xiàn)體等

setUnderlineText(boolean underlineText);
設(shè)置帶有下劃線(xiàn)的文字效果

setStrikeThruText(boolean strikeThruText);
設(shè)置帶有刪除線(xiàn)的效果

二:重點(diǎn)講解幾個(gè)方法

setStyle(Style style)

置畫(huà)筆樣式锭碳,如果不設(shè)置,默認(rèn)是全部填充(FILL)勿璃。可選項(xiàng)為:FILL推汽,F(xiàn)ILL_OR_STROKE补疑,或STROKE
畫(huà)筆樣式分三種:
1.Paint.Style.STROKE:描邊
2.Paint.Style.FILL_AND_STROKE:描邊并填充
3.Paint.Style.FILL:填充

**setStrokeCap(Paint.Cap cap); **

該方法用來(lái)設(shè)置我們畫(huà)筆的 筆觸風(fēng)格 ,比如:ROUND歹撒,表示是圓角的筆觸莲组。那么什么叫筆觸呢,其實(shí)很簡(jiǎn)單暖夭,就像我們現(xiàn)實(shí)世界中的筆锹杈,如果你用圓珠筆在紙上戳一點(diǎn),那么這個(gè)點(diǎn)一定是個(gè)圓迈着,即便很小竭望,它代表了筆的筆觸形狀,如果我們把一支鉛筆筆尖削成方形的裕菠,那么畫(huà)出來(lái)的線(xiàn)條會(huì)是一條彎曲的“矩形”咬清,這就是筆觸的意思。除了ROUND奴潘,Paint.Cap還提供了另外兩種類(lèi)型:SQUARE和BUTT

**setSrokeJoin(Paint.Join join); **

這個(gè)方法用于設(shè)置接合處的形態(tài)旧烧,就像你用代碼畫(huà)了一條線(xiàn),但是這條線(xiàn)其實(shí)是由無(wú)數(shù)條小線(xiàn)拼接成的画髓,拼接處的形狀就由該方法指定掘剪。可選參數(shù)是:BEVEL奈虾,MITER夺谁,ROUND肆汹。

**setXfermode(Xfermode xfermode); **
設(shè)置圖形重疊時(shí)的處理方式,如合并予权,取交集或并集昂勉,經(jīng)常用來(lái)制作橡皮的擦除效果

上面這個(gè)方法的功能很強(qiáng)大,它的主要原理就是:

可以使用圖像合成的16條Porter-Duff規(guī)則的任意一條來(lái)控制Paint如何與已有的Canvas圖像進(jìn)行交互扫腺。

xfermode.png

16條Porter-Duff規(guī)則
1.PorterDuff.Mode.CLEAR
所繪制不會(huì)提交到畫(huà)布上岗照。
2.PorterDuff.Mode.SRC
顯示上層繪制圖片
3.PorterDuff.Mode.DST
顯示下層繪制圖片
4.PorterDuff.Mode.SRC_OVER
正常繪制顯示,上下層繪制疊蓋笆环。
5.PorterDuff.Mode.DST_OVER
上下層都顯示攒至。下層居上顯示。
6.PorterDuff.Mode.SRC_IN
取兩層繪制交集躁劣。顯示上層迫吐。
7.PorterDuff.Mode.DST_IN
取兩層繪制交集。顯示下層账忘。
8.PorterDuff.Mode.SRC_OUT
取上層繪制非交集部分志膀。
9.PorterDuff.Mode.DST_OUT
取下層繪制非交集部分。
10.PorterDuff.Mode.SRC_ATOP
取下層非交集部分與上層交集部分
11.PorterDuff.Mode.DST_ATOP
取上層非交集部分與下層交集部分
12.PorterDuff.Mode.XOR
異或:去除兩圖層交集部分
13.PorterDuff.Mode.DARKEN
取兩圖層全部區(qū)域鳖擒,交集部分顏色加深
14.PorterDuff.Mode.LIGHTEN
取兩圖層全部溉浙,點(diǎn)亮交集部分顏色
15.PorterDuff.Mode.MULTIPLY
取兩圖層交集部分疊加后顏色
16.PorterDuff.Mode.SCREEN
取兩圖層全部區(qū)域,交集部分變?yōu)橥该魃?/p>

實(shí)踐才是真正的道理蒋荚,推薦兩個(gè)為hongyang的csdn博客,

使用規(guī)則6: PorterDuff.Mode.SRC_IN
Android 完美實(shí)現(xiàn)圖片圓角和圓形(對(duì)實(shí)現(xiàn)進(jìn)行分析)

使用規(guī)則9 : PorterDuff.Mode.DST_OUT
Android 自定義控件實(shí)現(xiàn)刮刮卡效果 真的就只是刮刮卡么

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末戳稽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子期升,更是在濱河造成了極大的恐慌惊奇,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件播赁,死亡現(xiàn)場(chǎng)離奇詭異颂郎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)行拢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)祖秒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人舟奠,你說(shuō)我怎么就攤上這事竭缝。” “怎么了沼瘫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵抬纸,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我耿戚,道長(zhǎng)湿故,這世上最難降的妖魔是什么阿趁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮坛猪,結(jié)果婚禮上脖阵,老公的妹妹穿的比我還像新娘。我一直安慰自己墅茉,他們只是感情好命黔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著就斤,像睡著了一般悍募。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洋机,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天坠宴,我揣著相機(jī)與錄音,去河邊找鬼绷旗。 笑死喜鼓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刁标。 我是一名探鬼主播颠通,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼膀懈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谨垃,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤启搂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后刘陶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胳赌,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年匙隔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疑苫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纷责,死狀恐怖捍掺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情再膳,我是刑警寧澤挺勿,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站喂柒,受9級(jí)特大地震影響不瓶,放射性物質(zhì)發(fā)生泄漏禾嫉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一蚊丐、第九天 我趴在偏房一處隱蔽的房頂上張望熙参。 院中可真熱鬧,春花似錦麦备、人聲如沸孽椰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弄屡。三九已至,卻和暖如春鞋诗,著一層夾襖步出監(jiān)牢的瞬間膀捷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工削彬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留全庸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓融痛,卻偏偏與公主長(zhǎng)得像壶笼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雁刷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容