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

  • 相关阅读:
    TCP拥塞控制机制
    C/S 与 B/S 区别
    ext4文件系统新特性
    关于TCP慢启动和拥塞避免的题
    [信息图表]移动学习 Go Study
    [时间线]Android市场的发展
    学习,只有勤奋是不够的……
    UNIX域套接字实例
    程序员的本质
    淘宝Web服务器Tengine正式开源
  • 原文地址:https://www.cnblogs.com/adison/p/3761284.html
Copyright © 2011-2022 走看看