Android中粗字體


前言

最近UI大牛出了一版新的效果圖,按照IOS的效果做的,頁面里面有普通字體、中粗字體、加粗字體。對於IOS的小伙伴,分分鍾搞定,但是對於Android開發的我,瞬間懵逼了。WTF!

安卓只有粗和不粗呀,哪有中粗這回事。硬着頭皮做出來一版之后,看到UI嫌棄的表情。深深的刺痛了我的完美心。說啥也要搞出來中粗的效果,不能Low,不能慫!

在查資料的過程中,看到了一篇博客。經過拜讀,突發靈感,我擦,竟然這么簡單。

上效果圖。

中粗的代碼。

public class MediumBoldTextView extends TextView {
    public MediumBoldTextView(Context context) {
        super(context);
    }

    public MediumBoldTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public MediumBoldTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //獲取當前控件的畫筆
        TextPaint paint = getPaint();
        //設置畫筆的描邊寬度值
        paint.setStrokeWidth(2);
        paint.setStyle(Paint.Style.FILL_AND_STROKE);
        super.onDraw(canvas);
    }
}

第二種方式

不想寫自定義控件的,例如只有一個地方用的到。可以通過動態改變textview的paint來修改。

        TextView textView = (TextView) findViewById(R.id.text_view);
        TextPaint paint = textView.getPaint();
        paint.setStyle(Paint.Style.FILL_AND_STROKE);
        paint.setStrokeWidth(2);

 

小結:

使用Textview的Bold屬性,和設置paint的strokeWidth值為4的寬度值是一樣的。

如果需要超級粗,也是可以做到的,只需要將strokeWidth值加大即可。

 

當然了,寫到這里肯定不是結束,后面會講TextView的描邊用法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM