TextView

作者: Dream_Book | 来源:发表于2019-09-26 17:11 被阅读0次

    省略号

    android:singleLine="true"
    
    android:maxEms="6"
    
    android:ellipsize = "end"       //省略号在结尾
    android:ellipsize = "start"     //省略号在开头
    android:ellipsize = "middle"     //省略号在中间
    android:ellipsize = "marquee"    //跑马灯
    

    SpannableStringBuilder

            SpannableStringBuilder style = new SpannableStringBuilder();
            style.append("朝辞白帝彩云间,千里江陵一日还。");
    
            //一段文字可以设置多个多种Span
            ClickableSpan clickableSpan = new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                 //点击回调
                }
    
                @Override//更新绘图状态
                public void updateDrawState(TextPaint ds) {
                    ds.setUnderlineText(false);//去掉下划线
                }
            };
    
            ClickableSpan clickableSpan2 = new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                    //点击回调
                }
    
                @Override
                public void updateDrawState(TextPaint ds) {
                    ds.setUnderlineText(false);//去掉下划线
                }
            };
            //过使用setSpan(Object what, int start, int end, int flags)改变文本样式
            //设定点击的文字区域
            style.setSpan(clickableSpan, 起始位置, 结束位置, flags);
            style.setSpan(clickableSpan2,  起始位置, 结束位置, flags);
            text.setText(style);
    
            //设置部分文字颜色,如果你通过一个ForegroundColorSpan设置两个区域会展现出不同的颜色
            ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#0279FF"));
            style.setSpan(foregroundColorSpan,  起始位置, 结束位置, flags);
            ForegroundColorSpan foregroundColorSpan2 = new ForegroundColorSpan(Color.parseColor("#0279FF"));
            style.setSpan(foregroundColorSpan2,  起始位置, 结束位置, flags);
    
            //使用ClickableSpan设置点击事件,最后还需要加上 
            text.setMovementMethod(LinkMovementMethod.getInstance());
            text.setHighlightColor(Color.parseColor("#00ffffff"));//文字点击背景色高亮显示
            //配置给TextView
            text.setText(style);
    
             * what: 
             BackgroundColorSpan : 文本背景色
             ForegroundColorSpan : 文本颜色
             MaskFilterSpan : 修饰效果,如模糊(BlurMaskFilter)浮雕
             RasterizerSpan : 光栅效果
             StrikethroughSpan : 删除线
             SuggestionSpan : 相当于占位符
             UnderlineSpan : 下划线
             AbsoluteSizeSpan : 文本字体(绝对大小)
             DynamicDrawableSpan : 设置图片,基于文本基线或底部对齐。
             ImageSpan : 图片
             RelativeSizeSpan : 相对大小(文本字体)
             ScaleXSpan : 基于x轴缩放
             StyleSpan : 字体样式:粗体、斜体等
             SubscriptSpan : 下标(数学公式会用到)
             SuperscriptSpan : 上标(数学公式会用到)
             TextAppearanceSpan : 文本外貌(包括字体、大小、样式和颜色)
             TypefaceSpan : 文本字体
             URLSpan : 文本超链接
             ClickableSpan : 点击事件
             */
    
             * flags:
             Spannable. SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本不会应用该样式 
             Spannable. SPAN_INCLUSIVE_INCLUSIVE:前面包括,后面包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本也会应用该样式 
             Spannable. SPAN_EXCLUSIVE_EXCLUSIVE:前面不包括,后面不包括 
             Spannable. SPAN_EXCLUSIVE_INCLUSIVE:前面不包括,后面包括
             */
    

    相关文章

      网友评论

          本文标题:TextView

          本文链接:https://www.haomeiwen.com/subject/qrlnuctx.html