首页
学习
活动
专区
圈层
工具
发布

Android中Textview文字设置不同颜色、下划线、加粗、超链接

,当然给textview设置不同的字体颜色也可以通过加HTML标签来实现,但是有SpannableString的存在,为啥不用呢....注意:如果这些额外信息能被所用的方式支持,比如将SpannableString传给TextView;也有对这些额外信息不支持的,比如自定义view中Canvas绘制 文字,对于不支持的情况,SpannableString...当然,SpannableString和SpannableStringBuilder也是存在区别的,它们的区别在于 SpannableString像一个String一样,构造对象的时候传入一个 String...static Spanned fromHtml(String source) 从Html字符串中返回可显示的样式文本。...Spanned fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 从Html字符串中返回可显示的样式文本

9.8K21

Android 千变万化 TextView:神奇的 SpannableString

总之,这之间的差别是比较专业的,在这个例子中确实看不出多大区别。 3)绝对字体和相对字体 SpannableString 可以动态地改变字体大小,并且支持绝对大小和相对大小两种模式。...a.电话超链接 这里又涉及到了一个新的类:URLSpan,实际上6种超链接都是使用 URLSpan 构建的,只是构造函数传入的链接格式不一样, 电话超链接传入的是 tel: 开头,后面接要拨打的电话号码...enter image description here 9)添加项目符号 关于这一点,客观地说用处不大,SpannableString 虽然支持设置项目符号,但是实际开发中基本不会用,如果是页面中的栏位...文字和表情可以混排,输入框中输入的表情和聊天列表中显示一致,基本功能都实现了。下面就来看下是怎么实现的吧。...,这个方法中利用正则匹配模式,找到输入内容中每一条符合正则的子字符串,也就是表情编码的字符串,然后像之前那样通过反射获取 Drawable,构建 SpannableString 把 Drawable 和

5.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性

    在Android中,TextView是我们最常用的用来显示文本的控件。   一般情况下,TextView中的文本都是一个样式。...那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。    ...   public class TextViewLinkActivity extends Activity {       TextView mTextView = null;          SpannableString...setContentView(R.layout.main);           mTextView = (TextView)findViewById(R.id.myTextView);   //创建一个 SpannableString...对象           msp = new SpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合/bot");

    2.2K90

    SpannableString 给TextView添加不同的显示样式

    TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置 myTextView...= (TextView) this.findViewById(R.id.myTextView);   //创建一个 SpannableString对象      SpannableString sp...= new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体.");      //设置超链接      sp.setSpan(new URLSpan("http...TextViewJump2Activity.this, "Click Success", Toast.LENGTH_SHORT).show(); //在这里就可以做跳转到activity或者弹出对话框的操作了...} }; SpannableString spanableInfo = new SpannableString("This is a test, Click Here!")

    2.1K70

    微博的文本编辑和显示(emoji表情,@某人、链接高亮点击)

    日常开发的过程中我们经常会需要实现类似微博的文本输入框,可以自定义的emoji、@某人高亮显示、快捷删除、文本显示表情、@人和链接点解等效果。...之后SpannableString来存储对应的ImageSpan 和文本中间的关系,最后利用SpannableStringBuilder 将生成好的SpannableString插入到输入框中。...具体逻辑是 首先通过String的indexOf来判断文本中是否有该名字的存在(index),首先从0的偏移开始。...2)、光标不能落入到@块中,防止在@块中又插入多一次。 3)、删除的时候对应删除list里面的id和name。...2、同样是在文本框中监听如果输入的文本是增加的,而且@符号,那么就通知跳转到用户选择页面。

    2.6K20

    Android开发笔记(九十二)策略模式

    ; 4、允许随时设定策略,即可在构造时设置,也可用专门的set方法设置,还可在执行时设置算法; Android中的使用场合 Android开发中用到策略模式的地方也不少,常见的有排序算法、字符串显示策略...sort方法中的参数就有对元素进行排序的算法类Comparator,可由开发者自定义算法比较两个元素的大小。..."; String itemText = "Hello world. " + str_url; SpannableString spanText = new SpannableString(itemText...[] urls = sp.getSpans(0, text.length(), URLSpan.class); for (URLSpan url : urls) { MyURLSpan myURLSpan...: 超链接样式 动画插值器和估值器 Android计算动画过程中的变化值,可采用不同的插值器算法,以实现动画变化的速率快慢;另外,插值器计算得到的只是一个默认的起始值与终止值,如果我们想将其转变为自定义的起始与终止效果

    60030

    Android控件TextView实现静态图与动态GIF图文混排

    最近做项目功能时,需要在TextView中展示图文,刚开始做的时候以为很简单,只需要用个ImageView跟TextView来展示就行了,可是发现这样做,不能实现我们需要的效果,这就需要涉及到富文本TextView...看着勒布朗(詹姆斯)过去7年做到的事情,我也常对自己说,如果我们当初能够解决好,我们可能会得到6、7个甚至8个冠军"; SpannableString sp = new SpannableString...int end = text.length(); Spannable sp = (Spannable)tv.getText(); URLSpan...[] urls=sp.getSpans(0, end, URLSpan.class); ImageSpan[] imgs = sp.getSpans(0,end,ImageSpan.class...SpannableStringBuilder style=new SpannableStringBuilder(text); style.clearSpans(); for(URLSpan

    2.4K30

    Android中如何实现图文混排

    项目开发中需要实现这种效果,多余两行,两行最后是省略号,省略号后面是下拉更多,之前用过的是Html.fromHtml去处理图文混排的,仅仅是文字后图片或者文字颜色字体什么的,但是这里需要在最后文字的省略号后面添加图片...通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢?...(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); //需要处理的文本,[smile]是需要被替代的文本 SpannableString...spannable = new SpannableString(getText().toString()+"[smile]"); //要让图片替代指定的文字就要用ImageSpan ImageSpan...ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); //开始替换,注意第2和第3个参数表示从哪里开始替换到哪里替换结束(start和end) //最后一个参数类似数学中的集合

    1.7K90

    Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件

    (即点击文字“白雪公主”/“小矮人”,就可以进入到这俩用户相应个人主页) 2、点击 回复的文字,就可以对回复人进行回复(即点击评论中回复的内容“你们好啊~”,便对弹出一个编辑框对回复人“白雪公主”进行回复...作为一个android开发者,我们要实现对一个TextView : 1、点击不同的文字部分(文字个数还不确定)有相应的响应操作(进入个人主页等等) 2、一个TextView中某些文字有不同的颜色 下面学习如何实现...-------------------------------------------------- 看java文件部分: MainActivity.java 很简单,自己创建了5条评论,添加到自己写的适配器中...long getItemId(int position) { return position; } 重点来了 getView() ~~ 首先 建议大家要看下这几篇文章 (转) SpannableString...与SpannableStringBuilder TextView显示html样式的文字 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应 然后~~ 注释都在代码中: @

    2.9K60

    Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件

    (即点击文字“白雪公主”/“小矮人”,就可以进入到这俩用户相应个人主页) 2、点击 回复的文字,就可以对回复人进行回复(即点击评论中回复的内容“你们好啊~”,便对弹出一个编辑框对回复人“白雪公主”进行回复...作为一个android开发者,我们要实现对一个TextView : 1、点击不同的文字部分(文字个数还不确定)有相应的响应操作(进入个人主页等等) 2、一个TextView中某些文字有不同的颜色 下面学习如何实现...-------------------------------------------------- 看java文件部分: MainActivity.java 很简单,自己创建了5条评论,添加到自己写的适配器中...long getItemId(int position) { return position; } 重点来了 getView() ~~ 首先 建议大家要看下这几篇文章 (转) SpannableString...与SpannableStringBuilder TextView显示html样式的文字 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应 然后~~ 注释都在代码中: @

    2.2K70

    【Android】Span的使用

    三三想成为安卓糕手 引入:通过上一章登录协议学习中SpannableString类的使用,我们对Span有了初步的认识; 现在新的问题来了,点击用户协议进行跳转和勾选用户协议两个事件共用了一个监听器,...实现复杂效果 ClickableSpan(按钮) 高 √ 让文本部分可点击,支持自定义点击事件 需结合 MovementMethod(如 LinkMovementMethod)才能生效,常用于交互文本 URLSpan...具体的方法使用,遇到了在慢慢往里面补充(前方的路以后再来探索吧~~~) 类 可变文本 可变标记 数据结构 使用场景 SpannedString 不支持 不支持 线性数组 ①不准备在创建文本后修改标记 SpannableString..."; SpannableString spannableString = new SpannableString(content); RelativeSizeSpan relativeSizeSpan...); tv_re.setText(spannableString); (3)实现效果 2:QuoteSpan Quote(引用、引述 ) 创建一个实例,构造方法中接收的参数是一个32位int

    36410

    真·富文本编辑器的演进之路-Span开胃菜

    文本超链接 val string = SpannableString("Text with a url span") string.setSpan(URLSpan("http://www.developer.android.com...SpanWatcher继承自NoCopySpan,在TextView的setText方法中,会基于传入的文本创建一个新的Spannable对象,在这个过程中SpanWatcher不会被复制到新的Spannable...= stop,那么start表示选择过程中不变的光标,stop表示变化的光标 Span最佳实践 为现有Text创建Span 当TextView调用setText之后,TextView中的文本将变为不可变类型...拓展的代码其实很简单,首先在getSize中修改行高,再在draw中对图像偏移,示例代码如下所示。...如果要在ClickableSpan中获取Span中的文字,是不能直接通过getText获取的,还需要对上面的代码进行下改造。

    3K20

    Android P之Smart Linkify

    : Html.fromHtml():将需要的字符串解析成html SpannableString:就是通过SpannableString来装饰字符串(Linkify内部就是这种方式) Smart Linkify...前馈神经网络 Smart Linkify首先引入小型的前馈神经网络来寻找对象,因为在文本中找出风格迥异写法的手机号和邮箱地址是很困难的一件事情。...理论基础 前馈神经网络是目前三大神经网络结构中的一种: 前馈网络 反馈网络 图网络 前馈网络将各个神经元按照接收信息的先后顺序分为不同的组,每一组相当于一个神经层,每一次神经元仅接收前一层神经元的输出作为自己的输入...在Smart Linkify中的应用 Smart Linkify里采用了两个紧凑低延时的前馈神经网络。神经网络的训练集是来源于是从网络上收集过来的,生成地址、电话等其他对应的列表。...大致流程如下: 对输入文本进行分词的提取,生成输入向量A 将输入向量A投入到神经网络中,第一层的神经网络为每个分词分配一个值(0~1),根据分词所代表的有效性和置信度,得分低的分词将从列表中删除,从而得到下一层的输入向量

    1.6K20
    领券