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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    教育是什么?
    关于CTime::Format在Unicode下的输出问题及解决办法
    COleDateTime在Unicode下,Format函数会有问题。
    UNICODE字符集
    处理字符串String类和正则表达式
    关于datatable linq的转换
    js
    HDU 3874 Necklace
    HDU 1520 Anniversary party
    HDU 4314 Save the dwarfs
  • 原文地址:https://www.cnblogs.com/killerlegend/p/3241124.html
Copyright © 2011-2022 走看看