zoukankan      html  css  js  c++  java
  • 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的描边用法。

  • 相关阅读:
    string与bytes相互转化
    python3之requests
    BeyondCompare3提示许可密钥过期完美解决方法
    windows环境下 curl 安装和使用
    Linux:PS命令详解与使用
    wireshark怎么抓包、wireshark抓包详细图文教程
    七层协议和四层协议
    linux中快速清空文件内容的几种方法
    python_02列表,字典,IO处理
    python_01
  • 原文地址:https://www.cnblogs.com/zxxiaoxia/p/10636211.html
Copyright © 2011-2022 走看看