• 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地址:点击打开链接

  • 相关阅读:
    ECharts grid组件离容器的距离
    防火墙centos7执行 service iptables status报错问题完美解决
    linux 在切换用户时出现:命令提示符-bash-4.1$错误解决
    DataTable转为TXT文档
    读取ecxel中数据——NPOI.Excel和Aspose
    SQL连接数据库
    fiddler软件无法生成代码
    webapi发布后更新(无前台时)
    webapi日志记录(TXT存储)
    webapi使用Get进行访问时,url长度被限制解决办法
  • 原文地址:https://www.cnblogs.com/adison/p/3761284.html
Copyright © 2020-2023  润新知