zoukankan      html  css  js  c++  java
  • Spannable相关方法

    实现文本链接

    其中tv是TextView类型的控件。只需写java代码即可实现链接,无需在xml文件中进行其他的设置。

    1. SpannableString spanTxt = new SpannableString("欢迎访问我的博客——Killerlegend的博客……");   
    2.         spanTxt.setSpan(new URLSpan("http://www.cnblogs.com/killerlegend/"), 0, spanTxt.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);   
    3.         tv.append(" "+" "+" ");   
    4.         tv.append(spanTxt);   
    5.         //让URLSpan可以点击   
    6.         tv.setMovementMethod(new LinkMovementMethod());  

    setSpan方法的定义如下:

    public abstract void setSpan (Object what, int start, int end, int flags)

    flags含义请参见:

    https://developer.android.com/reference/android/text/Spanned.html

    下面说几种比较常用的flags,关于下面的这几种flags的意义,都是指定对于在span中新加入字符时如何处理的。

    public static final int SPAN_EXCLUSIVE_EXCLUSIVE
    public static final int SPAN_POINT_MARK

    以上两者等价。均不包含文本首尾。即在该文本的首尾加入新的字符,那么span的设置是不会应用到新加入的字符的。以下其他可以类比推理。

    public static final int SPAN_EXCLUSIVE_INCLUSIVE

    不包含首,包含尾。

    public static final int SPAN_INCLUSIVE_EXCLUSIVE

    包含首,不包含尾。

    public static final int SPAN_INCLUSIVE_INCLUSIVE
    public static final int SPAN_MARK_POINT

    以上两者等价。均包含首尾。

    常见的Object有:

    URLSpan():其中可以为一个网址或者电话号,用于链接比如:

    URLSpan(http://user.qzone.qq.com/1191509410/main)

    URLSpan("tel:1008611")

    BackgroundColorSpan(Color.parseColor(String para))

    ForegroundColorSpan(Color.parseColor(String para))

    分别用于设置span的背景前景色,其中的para为字符类型。

    ……(后续仍会加入……)

    最后不要忘记了:

    Object.setMovementMethod(LinkMovementMethod.getInstance());

    Object.setText(span)

    以应用span。


    作者:KillerLegend
    出处:http://www.cnblogs.com/KillerLegend/
    分享最新的资源,分享个人所得,欢迎关注我的新浪微博
    新浪微博主页:ikey4u
    我的个人博客:www.ikey4u.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    Apache部署Django项目
    Docker
    常用算法
    Go之基本数据类型
    Go之流程控制
    Go基本使用
    Go安装与Goland破解永久版
    Linux
    详解java中的byte类型
    Linux统计文本中某个字符串出现的次数
  • 原文地址:https://www.cnblogs.com/killerlegend/p/3241124.html
Copyright © 2011-2022 走看看