Android中粗字體
前言
最近UI大牛出了一版新的效果圖,按照IOS的效果做的,頁面里面有普通字體、中粗字體、加粗字體。對于IOS的小伙伴,分分鐘搞定,但是對于Android開發(fā)的我,瞬間懵逼了。WTF!
安卓只有粗和不粗呀,哪有中粗這回事。硬著頭皮做出來一版之后,看到UI嫌棄的表情。深深的刺痛了我的完美心。說啥也要搞出來中粗的效果,不能Low,不能慫!
在查資料的過程中,看到了一篇博客。經(jīng)過拜讀,突發(fā)靈感,我擦,竟然這么簡單。
上效果圖。

中粗的代碼。
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) { //獲取當(dāng)前控件的畫筆 TextPaint paint = getPaint(); //設(shè)置畫筆的描邊寬度值 paint.setStrokeWidth(2); paint.setStyle(Paint.Style.FILL_AND_STROKE); super.onDraw(canvas); } }
第二種方式
不想寫自定義控件的,例如只有一個地方用的到。可以通過動態(tài)改變textview的paint來修改。
TextView textView = (TextView) findViewById(R.id.text_view); TextPaint paint = textView.getPaint(); paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setStrokeWidth(2);
小結(jié):
使用Textview的Bold屬性,和設(shè)置paint的strokeWidth值為4的寬度值是一樣的。
如果需要超級粗,也是可以做到的,只需要將strokeWidth值加大即可。
當(dāng)然了,寫到這里肯定不是結(jié)束,后面會講TextView的描邊用法。