栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

安卓笔记---TextView部分字符串点击事件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安卓笔记---TextView部分字符串点击事件

一需求

每一个app都需要做一个类似这个东西

二实现

1.可用使用控件拼接,嗯…不太行,手机设置调整字体大小和显示大小的时候,这时这两个控件的拼接就会出点问题

2.可用使用文本超链接点击textview的一部分字体,类似QQ空间或者微博高亮度字体的跳转
xml文件

 

java代码

TextView user_protocol_ok=findViewById(R.id.user_protocol);

//创建一个SpannableString用来存放要显示的字符串
SpannableString spannableString=new SpannableString("已阅读同意用户协议和隐私条款");
 //给5-14个字符串设置点击事件
         spannableString.setSpan(new ClickableSpan() {             
            @Override
            public void onClick(@NonNull View widget) {
                //这写点击事件的逻辑
            }
        },5,14,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

 //给5-14个字符串设置文本颜色
   spannableString.setSpan(new ForegroundColorSpan(getColor(R.color.colorPrimaryDark)),5,14,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
      //然后把spannableString放进到Text中,
        user_protocol_ok.setText(spannableString);
        //最后设置可点击
        user_protocol_ok.setMovementMethod(linkMovementMethod.getInstance());

这就实现了相关需求功能

三相关知识 SpannableString

实现效果时用到了这个类,它和Strings一样都是一种字符串类型,可用先设置好SpannableString 在把它放到TextView.set(SpannableString )中
使用spannableString.setSpan(Object what, int start, int end, int flags);方法可用设置许多不同的样式效果.
该方法的第一个参数就是所要设置的格式比如
ClickableSpan 就是点击事件
BackgroundColorSpan 看单词就知道背景色
ForegroundColorSpan 文本颜色
UnderlineSpan 下划线
URLSpan 文本超链接
RelativeSizeSpan 相对大小(和TextView原有的文字大小相对比)
AbsoluteSizeSpan 绝对大小(直接用具体数值指定文字大小)
SuperscriptSpan 上标
ImageSpan 插入图片
DynamicDrawableSpan 设置图片
…其他的请查阅API

第二个和第三个是字符串的起始下标和结束下标

第四个参数有四种选择
Spannable. SPAN_INCLUSIVE_EXCLUSIVE 在这段文本前部插入新的文本会应用该样式,而在文本后部插入新文本则不会应用该样式
Spannable. SPAN_INCLUSIVE_INCLUSIVE 在这段文本前部插入新的文本会应用该样式,在文本后部插入新文本也会应用该样式
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 比较常用,在这段文本前部插入新的文本不会应用该样式,在文本后部插入新文本也不会应用该样式
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 在这段文本前部插入新的文本不会应用该样式,在文本后部插入新文本会应用该样式

SpannableStringBuilder

String的拼接可用使用StringBuilder
SpannableString 也可以使用SpannableStringBuilder拼接实现 QQ空间点赞和点赞人的显示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号