Android 中的粗體:怎么動態(tài)的設(shè)置粗體?怎么設(shè)置中粗

怎么動態(tài)設(shè)置粗體:

Android中的粗體大家都知道怎么設(shè)置,就是在 xml 中設(shè)置一個textStyle贱呐,但怎么動態(tài)的設(shè)置粗體呢,Android 的Textview中沒有直接設(shè)置setTextBold這樣的API入桂,我這有兩個辦法去解決:

1.獲取TextView的Paint奄薇,paint 中有個方法是setFakeBoldText,代碼演示就是

  mTextView.getPaint().setFakeBoldText(true);

這個達到的效果是和設(shè)置 textStyle效果一致抗愁。

2.通過setTypeface( Typeface tf, @Typeface.Style int style),看下Typeface.Style的結(jié)構(gòu)

   /** @hide */
    @IntDef(value = {NORMAL, BOLD, ITALIC, BOLD_ITALIC})
    @Retention(RetentionPolicy.SOURCE)
    public @interface Style {}

是不是很熟悉啊馁蒂,這不就是對應(yīng)的textStyle中的三個參數(shù)嗎

代碼演示就是:

  mText.setTypeface(null, Typeface.BOLD);

咱們看一下源碼

public void setTypeface(@Nullable Typeface tf, @Typeface.Style int style) {
        if (style > 0) { 
            if (tf == null) {
                tf = Typeface.defaultFromStyle(style); //typeface 是可以為null的,為null 就用默認的
            } else {
                tf = Typeface.create(tf, style);
            }

            setTypeface(tf);// 調(diào)用了 重載的函數(shù)蜘腌,里面主要是把tf 傳入到 textpaint里面操作
            // now compute what (if any) algorithmic styling is needed
            int typefaceStyle = tf != null ? tf.getStyle() : 0;
            int need = style & ~typefaceStyle;
            mTextPaint.setFakeBoldText((need & Typeface.BOLD) != 0);// 其實和方法一殊途同歸
            mTextPaint.setTextSkewX((need & Typeface.ITALIC) != 0 ? -0.25f : 0);
        } else {
            mTextPaint.setFakeBoldText(false);
            mTextPaint.setTextSkewX(0);
            setTypeface(tf);
        }
    }

其實上面整體方法的思想還是通過 TextView里面的TextPaint 去設(shè)置 沫屡。

怎能設(shè)置中粗

我在開發(fā)的過程中,總會遇到設(shè)計給出的設(shè)置粗體和中粗的字重撮珠,一開始我們都以為中粗也是粗體沮脖,都用的 BOLD 的樣式,但是經(jīng)過對比芯急,中粗比常規(guī)字體要粗勺届,比粗體要細。那么要設(shè)置這個就要用到 fontFamily

    android:fontFamily="sans-serif-medium"
 Typeface typeface = Typeface.create("sans-serif-medium", 0);
 mText.setTypeface(typeface);

參考鏈接:https://blog.csdn.net/yuanxw44/article/details/80019501

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娶耍,一起剝皮案震驚了整個濱河市涮因,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伺绽,老刑警劉巖养泡,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奈应,居然都是意外死亡澜掩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門杖挣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肩榕,“玉大人,你說我怎么就攤上這事惩妇≈旰海” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵歌殃,是天一觀的道長乔妈。 經(jīng)常有香客問我,道長氓皱,這世上最難降的妖魔是什么路召? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任勃刨,我火速辦了婚禮,結(jié)果婚禮上股淡,老公的妹妹穿的比我還像新娘身隐。我一直安慰自己,他們只是感情好唯灵,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布贾铝。 她就那樣靜靜地躺著,像睡著了一般埠帕。 火紅的嫁衣襯著肌膚如雪垢揩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天搞监,我揣著相機與錄音水孩,去河邊找鬼。 笑死琐驴,一個胖子當著我的面吹牛俘种,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绝淡,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼宙刘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牢酵?” 一聲冷哼從身側(cè)響起悬包,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馍乙,沒想到半個月后布近,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡丝格,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年撑瞧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片显蝌。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡预伺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曼尊,到底是詐尸還是另有隱情酬诀,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布骆撇,位于F島的核電站瞒御,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏艾船。R本人自食惡果不足惜葵腹,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一高每、第九天 我趴在偏房一處隱蔽的房頂上張望屿岂。 院中可真熱鬧践宴,春花似錦、人聲如沸爷怀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽运授。三九已至烤惊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吁朦,已是汗流浹背柒室。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逗宜,地道東北人雄右。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像纺讲,于是被迫代替她去往敵國和親擂仍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361