zoukankan      html  css  js  c++  java
  • SpannableStringBuilder 用法浅析以及仿陌陌表情

    SpannableStringBuilder  官方文档解释:这个类可以使文本的内容和标记都可以改变。当我们要为TextView或者Edittext里面的文字加入加入一些效果,如下划线,颜色标 识,超链接等,类似word文档一样。这时候可以用到SpannableStringBuilder ,SpannableStringBuilder是 android.text里面的一个类,功能灰常强大。主要的一个方法就是setSpan (Object what, int start, int end, int flags),这个方法的作用就是在把某个范围内的文字替换成某种东西;以下是一些简单用法

    //下划线

      SpannableString builder_1=new SpannableString(textView1.getText());
                    builder_1.setSpan(new UnderlineSpan(), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    textView1.setText(builder_1);

    //超链接

     SpannableString builder_2=new SpannableString("网址:www.baidu.com");
                    builder_2.setSpan(new URLSpan("www.baidu.com"), 3, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    textView2.setText(builder_2);

    //样式

     SpannableString builder_3=new SpannableString(textView3.getText());
                    builder_3.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    textView3.setText(builder_3);

    //图片表情
    CharSequence text = "dsfdsfdddd[zem1]fdsfs";  
    SpannableStringBuilder builder = new SpannableStringBuilder(text);  
    String rexgString = "[zem1]";  
    Pattern pattern = Pattern.compile(rexgString);  
    Matcher matcher = pattern.matcher(text);  
     
    while (matcher.find()) {  
        builder.setSpan(  
                new ImageSpan(this, R.drawable.ic_launcher), matcher.start(), matcher  
                        .end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
    }  
     
    textView4.setText(builder); 

     

    demo表情那里是仿陌陌表情,不详述。。。

    demo地址:点击打开链接

  • 相关阅读:
    Python基础(三) 基本数据类型②:列表
    Python基础(一) Python3环境搭建
    Python基础(二) 基本数据类型①:整数型、布尔型、字符串
    win7下花生壳无法访问的问题
    Java中使用Hhibernate遇到一个错误:No Dialect mapping for JDBC type:1
    ASP.NET MVC2 实验总结
    js 格式化时间
    web service
    初学。。ASP.NET
    在.NET中使用XML的基本方法
  • 原文地址:https://www.cnblogs.com/adison/p/3761284.html
Copyright © 2011-2022 走看看