前言
最近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的描邊用法。