Hencoder學(xué)習(xí)筆記1-3

HenCoder Android 開發(fā)進(jìn)階:自定義 View 1-3 文字的繪制

Canvas 繪制文字的方式

drawText()

最基本的繪制文字的方法

drawTextRun()

drawTextOnPath()

沿著一條 Path 來繪制文字。這是一個(gè)耍雜技的方法汰蓉。

StaticLayout

StaticLayout(CharSequence source, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad)棒卷,其中參數(shù)里:

width 是文字區(qū)域的寬度祝钢,文字到達(dá)這個(gè)寬度后就會自動(dòng)換行太颤;
align 是文字的對齊方向盹沈;
spacingmult 是行間距的倍數(shù),通常情況下填 1 就好做裙;
spacingadd 是行間距的額外增加值肃晚,通常情況下填 0 就好;
includeadd 是指是否在文字上下添加額外的空間拧廊,來避免某些過高的字符的繪制出現(xiàn)越界

Paint 對文字繪制的輔助

設(shè)置顯示效果類

設(shè)置文字大小晋修。
設(shè)置字體吧碾。setTypeface(Typeface typeface)
是否使用偽粗體倦春。setFakeBoldText(boolean fakeBoldText)
是否加刪除線落剪。setStrikeThruText(boolean strikeThruText)
是否加下劃線。setUnderlineText(boolean underlineText)
設(shè)置文字橫向錯(cuò)切角度呢堰。setTextSkewX(float skewX)
設(shè)置文字橫向放縮凡泣。setTextScaleX(float scaleX)
設(shè)置字符間距。setLetterSpacing(float letterSpacing)
用 CSS 的 font-feature-settings 的方式來設(shè)置文字往衷。setFontFeatureSettings(String settings)
設(shè)置文字的對齊方式严卖。setTextAlign(Paint.Align align)
設(shè)置繪制所使用的 Locale哮笆。setTextLocale(Locale locale) / setTextLocales(LocaleList locales)
設(shè)置是否啟用字體的 hinting (字體微調(diào))setHinting(int mode)
設(shè)置是否開啟文字的 elegant height 。setElegantTextHeight(boolean elegant)
是否開啟次像素級的抗鋸齒( sub-pixel anti-aliasing )稠肘。setSubpixelText(boolean subpixelText)
setLinearText(boolean linearText)

測量文字尺寸類

獲取推薦的行距。
float getFontSpacing()
獲取 Paint 的 FontMetrics滑黔。
FontMetircs getFontMetrics()
獲取文字的顯示范圍环揽。
getTextBounds(String text, int start, int end, Rect bounds)
測量文字的寬度并返回。 float measureText(String text)
獲取字符串中每個(gè)字符的寬度汛兜,并把結(jié)果填入?yún)?shù) widths通今。getTextWidths(String text, float[] widths)
這個(gè)方法也是用來測量文字寬度的。
int breakText(String text, boolean measureForwards, float maxWidth, float[] measuredWidth)

光標(biāo)相關(guān)

計(jì)算出某個(gè)字符處光標(biāo)的 x 坐標(biāo)漏策。
getRunAdvance(CharSequence text, int start, int end, int contextStart, int contextEnd, boolean isRtl, int offset)
給出一個(gè)位置的像素值臼氨,計(jì)算出文字中最接近這個(gè)位置的字符偏移量
getOffsetForAdvance(CharSequence text, int start, int end, int contextStart, int contextEnd, boolean isRtl, float advance)
檢查指定的字符串中是否是一個(gè)單獨(dú)的字形 (glyph)hasGlyph(String string)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市巢寡,隨后出現(xiàn)的幾起案子抑月,更是在濱河造成了極大的恐慌,老刑警劉巖谦絮,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件层皱,死亡現(xiàn)場離奇詭異赠潦,居然都是意外死亡她奥,警方通過查閱死者的電腦和手機(jī)怎棱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門拳恋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谬运,“玉大人垦藏,你說我怎么就攤上這事∈酵ⅲ” “怎么了芭挽?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵袜爪,是天一觀的道長。 經(jīng)常有香客問我辛馆,道長,這世上最難降的妖魔是什么腊状? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任缴挖,我火速辦了婚禮焚辅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘同蜻。我一直安慰自己,他們只是感情好瘫析,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布颁股。 她就那樣靜靜地躺著傻丝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葡缰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天滤愕,我揣著相機(jī)與錄音怜校,去河邊找鬼。 笑死魂贬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的付燥。 我是一名探鬼主播愈犹,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼勋颖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牙言,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤咱枉,失蹤者是張志新(化名)和其女友劉穎徒恋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體入挣,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年障陶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聊训。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鼓寺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妈候,到底是詐尸還是另有隱情挂滓,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布幔虏,位于F島的核電站亲怠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏团秽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一踪栋、第九天 我趴在偏房一處隱蔽的房頂上張望图毕。 院中可真熱鬧,春花似錦囤官、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氯窍。三九已至蹲堂,卻和暖如春狼讨,著一層夾襖步出監(jiān)牢的瞬間政供,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工鲫骗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踩晶,地道東北人枕磁。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像计济,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子学密,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

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