zoukankan      html  css  js  c++  java
  • Android--TextView第一个单词大写

    自定义TextView:

    public class FirstBoldTextView extends TextView
    {
        private boolean firstWordBold = false;
        private String str;
    
        public FirstBoldTextView(Context context, AttributeSet attrs, int defStyle)
        {
            super(context, attrs, defStyle);
            // TODO Auto-generated constructor stub
        }
    
        public FirstBoldTextView(Context context, AttributeSet attrs)
        {
            super(context, attrs);
            // TODO Auto-generated constructor stub
        }
    
        public FirstBoldTextView(Context context)
        {
            super(context);
        }
    
        @SuppressLint("DrawAllocation")
        @Override
        protected void onDraw(Canvas canvas)
        {
            str = getText().toString().trim();
            if (!TextUtils.isEmpty(str) && !firstWordBold)
            {
                SpannableStringBuilder ssb = new SpannableStringBuilder(str);
                ssb.setSpan(new FirstWordBoldSpan(Typeface.NORMAL), 0, str.indexOf(" "), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                setText(ssb);
                setMovementMethod(LinkMovementMethod.getInstance());
                firstWordBold = true;
            }
            super.onDraw(canvas);
        }
    
        
        @Override
        protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter)
        {
            super.onTextChanged(text, start, lengthBefore, lengthAfter);
            firstWordBold = false;
        }
    }

    其中FirstWordBoldSpan代码如下:

    public class FirstWordBoldSpan extends StyleSpan
    {
    
        public FirstWordBoldSpan(int style)
        {
            super(style);
        }
    
        @Override
        public int describeContents()
        {
            // TODO Auto-generated method stub
            return super.describeContents();
        }
    
        @Override
        public int getSpanTypeId()
        {
            return super.getSpanTypeId();
        }
    
        @Override
        public int getStyle()
        {
            return super.getStyle();
        }
    
        @Override
        public void updateDrawState(TextPaint ds)
        {
            ds.setFakeBoldText(true);
            super.updateDrawState(ds);
        }
    
        @Override
        public void updateMeasureState(TextPaint paint)
        {
            paint.setFakeBoldText(true);
            super.updateMeasureState(paint);
        }
    
        @Override
        public void writeToParcel(Parcel dest, int flags)
        {
            // TODO Auto-generated method stub
            super.writeToParcel(dest, flags);
        }
    
    }
  • 相关阅读:
    剑指offer之 二维数组的查找
    常用的基础算法总结之 希尔排序
    让shell脚本中的echo输出带颜色
    nginx利用lua实现nginx反向代理proxy_store缓存文件自删除
    LNMP平滑升级nginx并安装ngx_lua模块教程
    nginx的luajit安装luarocks并安装luafilesystem
    PHP图片识别成文字
    使用tesseract-ocr破解网站验证码
    利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
    http://ocr.wdku.net/
  • 原文地址:https://www.cnblogs.com/crane13/p/4059623.html
Copyright © 2011-2022 走看看