textview文字顯示不同大小,中間帶橫線等功能實(shí)現(xiàn)

image

如上圖所示這兩種效果,我想在大家開(kāi)發(fā)過(guò)程中應(yīng)該也會(huì)碰到。我這邊寫(xiě)一個(gè)簡(jiǎn)單的實(shí)現(xiàn)效果供大家借鑒,或者有好的實(shí)現(xiàn)方法可以一起分享一下。

image

文字顯示不同大小功能實(shí)現(xiàn):

圖片.png
public class TextPriceFormatUtils {


    /**
     * 小數(shù)點(diǎn)前后大小不一致
     *
     * @param value
     * @return
     */
    public static SpannableString format(String value) {

        if (TextUtils.isEmpty(value)) {
            return new SpannableString(value);
        }
        if (!value.contains("¥")) {
            value = "¥" + value;
        }
        SpannableString spannableString = new SpannableString(value);
        if (value.contains(".")) {
            spannableString.setSpan(new RelativeSizeSpan(0.77f), value.indexOf("."), value.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }

        if (value.contains("¥")) {
            spannableString.setSpan(new RelativeSizeSpan(0.77f), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }

        return spannableString;
    }
}

上面這個(gè)封裝的utils大家可以再加一些參數(shù),比如大小文字,字號(hào)比例大小,上面代碼中的0.77f是項(xiàng)目中3980字段為18sp,小數(shù)點(diǎn)后00為14sp。

沒(méi)錯(cuò)實(shí)現(xiàn)主要是通過(guò)SpannableString ,那么就很有必要了解Spanned幾種類(lèi)型的區(qū)別了

Spanned的flag一般有以下四種:

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE — 不包含兩端start和end所在的端點(diǎn)
Spanned.SPAN_EXCLUSIVE_INCLUSIVE — 不包含端start,但包含end所在的端點(diǎn)
Spanned.SPAN_INCLUSIVE_EXCLUSIVE — 包含兩端start,但不包含end所在的端點(diǎn)
Spanned.SPAN_INCLUSIVE_INCLUSIVE— 包含兩端start和end所在的端點(diǎn)

最后textview設(shè)置:

 SpannableString spannableString = TextPriceFormatUtils.format("¥3980.00");
 textview.setText(spannableString);

文字中間橫線功能實(shí)現(xiàn):

圖片.png

上面這個(gè)就比較簡(jiǎn)單了:

textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);

一行代碼搞定。。。
不過(guò)一些常用的paint的flag還是有必要了解一下的:

Paint.ANTI_ALIAS_FLAG :抗鋸齒標(biāo)志
Paint.UNDERLINE_TEXT_FLAG : 下劃線
Paint.STRIKE_THRU_TEXT_FLAG : 中劃線
Paint.FAKE_BOLD_TEXT_FLAG : 加粗

至此,完成了我們想要的效果。

原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:http://www.itdecent.cn/p/613c0d80d49b

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容