TextView

2019-09-26  本文已影响0人  Dream_Book

省略号

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:前面不包括,后面包括
         */
上一篇下一篇

猜你喜欢

热点阅读