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);
        }
    
    }
  • 相关阅读:
    洛谷P4304 [TJOI2013]攻击装置 题解
    洛谷P2172 [国家集训队]部落战争 题解
    CentOS 7.0下配置MariaDB数据库
    读《深入php面向对象、模式与实践》有感(三)
    读《深入php面向对象、模式与实践》有感(二)
    读《深入php面向对象、模式与实践》有感(一)
    Linux下配置Lamp
    自己编写php框架(一)
    php读取html文件(或php文件)的方法
    Thinkphp框架感悟(二)
  • 原文地址:https://www.cnblogs.com/crane13/p/4059623.html
Copyright © 2011-2022 走看看