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

  • 相关阅读:
    ajax与302响应
    读过/在读/想读的英文原著
    从编译DotNetOpenAuth中学到的程序集强签名知识
    百度输入法引起的Mac远程桌面Ctrl+.快捷键不起作用
    MacBook鼠标指针乱窜/不受控制问题的解决方法
    IIS中User-mode caching引起的Cache-Control不为public的问题
    让IIS8支持WCF的最简单方法
    在ASP.NET Web Forms中用System.Web.Optimization取代SquishIt
    苹果官方发布,iPhone 6 & Plus 设计素材
    jQuery 特效:盒子破碎和移动动画效果
  • 原文地址:https://www.cnblogs.com/adison/p/3761284.html
Copyright © 2020-2023  润新知