TextView部分文字加粗

文章介绍了在Android中如何对TextView的部分文字进行加粗、设置不同颜色以及实现点击事件。使用Html.fromHtml和SpannableString可以实现文字格式化,通过setSpan方法设置特定样式。同时,自定义ClickableSpan实现文字点击事件,并控制是否显示下划线。
摘要由CSDN通过智能技术生成

TextView部分文字加粗_textview 部分加粗_iblade的博客-CSDN博客

Android 中 TextView 部分文字有不同的颜色和部分文字点击事件 - 简书

Android中TextView实现分段显示不同颜色的字符串 - 腾讯云开发者社区-腾讯云

加粗

Html.fromHtml("<b>实阿斯达斯材:</b>烧杯打扫打扫打扫打扫体。<br><br><b>确阿斯顿撒大事整的吗?</b>")
    private void testText1(String posName) {
        String text = "* 为你发布的 " + posName + " 添加一句宣传语吧!";
        SpannableString span = new SpannableString(text);
        span.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        span.setSpan(new ForegroundColorSpan(Color.CYAN), 7, 7 + posName.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        span.setSpan(new ForegroundColorSpan(Color.BLACK), text.length() - 5, text.length() - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        span.setSpan(new StyleSpan(Typeface.BOLD), text.length() - 5, text.length() - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv1.setText(span);
        /**
         * 其中最后的参数flag:
         * Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点 (a,b)
         * Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端点 (a,b]
         * Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含两端start,但不包含end所在的端点 [a,b)
         * Spanned.SPAN_INCLUSIVE_INCLUSIVE --- 包含两端start和end所在的端点 [a,b]
         */
    }

在这里插入图片描述

 

        //方法一:
        TextView tvValue = findViewById(R.id.tv_value);
        String str="默认颜色<font color='#FF0000'><small>红颜色 
       </small></font>";
        tvValue.setTextSize(18);
        tvValue.setText(Html.fromHtml(str));

部分文字的点击事件

        TextView tv1 = view.findViewById(R.id.tv1);
        String content = " 欢迎来到SumanSoul为了更好地向用户提供服务,未经用户同意,SumanSoul不会自动收集、获取、共享或对外提供用户个人信息;你可以随时查看、更正或删除你的个人信息,SumanSoul也提供用户注销功能。";
        tv_content.setText(content.replace(" ", ""));
        SpannableStringBuilder spannableString = new SpannableStringBuilder("点击查看完整「用户协议」和「隐私政策」");
        spannableString.setSpan(new TextAgreementClick(), 6, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new TextPrivacyClick(), 13, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        //设置点击事件,加上这句话才有效果
        tv1.setMovementMethod(LinkMovementMethod.getInstance());
         //设置点击后的颜色为透明(有默认背景)
       tv1.setHighlightColor(BaseApplication.getInstance().getResources().getColor(R.color.transparent));
        tv1.setText(spannableString);

  <!-- 透明背景色-->
    <color name="transparent" tools:ignore="MissingDefaultResource">#00000000</color>

 

    private class TextAgreementClick extends ClickableSpan{

        @Override
        public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            //设置文本的颜色
            ds.setColor(Color.RED);
            //超链接形式的下划线,false 表示不显示下划线,true表示显示下划线
            ds.setUnderlineText(false);
        }

        @Override
        public void onClick(View widget) {
           // 执行点击逻辑
        }
    }

Android 中 TextView 部分文字有不同的颜色和部分文字点击事件 - 简书 

Android中TextView实现分段显示不同颜色的字符串 - 腾讯云开发者社区-腾讯云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值