Android SpannableString富文本距離底部對齊

實(shí)際展示效果
1.0折字體
單獨(dú)Demo調(diào)式
文字和數(shù)字或者英文字符底部不齊原因
1、數(shù)字與文字雖然baseline對齊了勺疼,但是文字 在baseline下方多占據(jù)了一小快(des區(qū)域)
2教寂、如果只有數(shù)字或字符,就可以底對齊执庐,要是有富文本酪耕,就需要偏移
文本Baseline

TeextView 信息

 contentSize...77..descent..21.714...ascent..-80.388...bottom...21.714...top...-80.388....height...102.102005..total height...103
VerticalCenterSpan
start..4....end....7....x.....564.0...y...76...bottom...97...top..0
Code
public class VerticalBottomSpan extends ReplacementSpan {

private int fontSizePx;    //px
private float mOffset;    //px

public VerticalBottomSpan(int fontSizePx,float offset) {
    this.fontSizePx = fontSizePx;
    this.mOffset = offset;
}

@Override
public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
    text = text.subSequence(start, end);
    Paint p = getCustomTextPaint(paint);
    return (int) p.measureText(text.toString());
}

@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
    text = text.subSequence(start, end);
    Paint p = getCustomTextPaint(paint);
    Paint.FontMetricsInt fm = p.getFontMetricsInt();
    // 此處重新計(jì)算y坐標(biāo),使字體居中
    canvas.drawText(text.toString(), x, y+mOffset, p);
    Log.d("VerticalCenterSpan", "..start.." + start + "....end...." + end + "....x....." + x + "...y..." + y +
            "...bottom..." + bottom + "...top.." + top);
}

private TextPaint getCustomTextPaint(Paint srcPaint) {
    TextPaint paint = new TextPaint(srcPaint);
    paint.setTextSize(fontSizePx);   //設(shè)定字體大小, sp轉(zhuǎn)換為px
    return paint;
}
}
Use
String str = 1.0+ "折";
spannableString = new SpannableString(str);
spannableString.setSpan(new   
VerticalBottomSpan(SizeUtils.dp2px(mContext,13),-3),str.length() - 1,   
str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv.setText(spannableString);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轨淌,一起剝皮案震驚了整個(gè)濱河市迂烁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌递鹉,老刑警劉巖盟步,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躏结,居然都是意外死亡却盘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門媳拴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黄橘,“玉大人,你說我怎么就攤上這事屈溉∪兀” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵子巾,是天一觀的道長帆赢。 經(jīng)常有香客問我,道長线梗,這世上最難降的妖魔是什么椰于? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮缠导,結(jié)果婚禮上廉羔,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好憋他,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布孩饼。 她就那樣靜靜地躺著,像睡著了一般竹挡。 火紅的嫁衣襯著肌膚如雪镀娶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天揪罕,我揣著相機(jī)與錄音梯码,去河邊找鬼。 笑死好啰,一個(gè)胖子當(dāng)著我的面吹牛轩娶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播框往,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鳄抒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了椰弊?” 一聲冷哼從身側(cè)響起许溅,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秉版,沒想到半個(gè)月后贤重,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡清焕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年并蝗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耐朴。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡借卧,死狀恐怖盹憎,靈堂內(nèi)的尸體忽然破棺而出筛峭,到底是詐尸還是另有隱情,我是刑警寧澤陪每,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布影晓,位于F島的核電站,受9級特大地震影響檩禾,放射性物質(zhì)發(fā)生泄漏挂签。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一盼产、第九天 我趴在偏房一處隱蔽的房頂上張望饵婆。 院中可真熱鬧,春花似錦戏售、人聲如沸侨核。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搓译。三九已至悲柱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間些己,已是汗流浹背豌鸡。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留段标,地道東北人涯冠。 一個(gè)月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像逼庞,于是被迫代替她去往敵國和親功偿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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

  • https://www.lightercapital.com/blog/how-to-break-down-org...
    熊小龍Dragon閱讀 507評論 0 0
  • 隱私政策 應(yīng)用尊重並保護(hù)所有使用服務(wù)用護(hù)的個(gè)人隱私權(quán)往堡。為了給您堤供更準(zhǔn)確械荷、更有個(gè)性化的服務(wù),應(yīng)用澮按照本隱私權(quán)政策...
    YViVi閱讀 168評論 0 0
  • 看不到信息虑灰?遲遲沒有回應(yīng)吨瞎? 那就沒有必要等了,因?yàn)檫@就是兩個(gè)人相處最明顯的答案穆咐。 當(dāng)自己主動(dòng)發(fā)信息得不到回應(yīng)時(shí)颤诀,你...
    lyyrm閱讀 190評論 2 3
  • 命令提示符 [ ]:這是提示符的分隔符號(hào),沒有特殊意義 root:顯示的是當(dāng)前的登錄用戶 @:分隔符號(hào)对湃,沒有特殊含...
    喜憂參半閱讀 319評論 0 1
  • 【原文】 如果一個(gè)教練僅僅在普通的崖叫、有意識(shí)覺察的層面提出問題和接收答案,他可以幫助教練對象結(jié)構(gòu)化其思想拍柒,但并沒有到...
    夏雨Vivian閱讀 213評論 0 1