TextView图文混排图片被截断的问题以及Android省略号只有一个点的问题

来源:互联网 发布:革命烈士 知乎 编辑:程序博客网 时间:2024/05/20 18:03

TextView中实现图文混排主要采用的是SpannableStringBuilder、ImageSpan、正则表达式协同完成,具体的实现,自己去百度吧。

今天主要想说的是在图文混排的时候,如果TextView设置了最大长度并且textView.setEllipsize(TruncateAt.END);,由于ImageSpan的作用,这时TextView的Ellipsize自动截断功

能失效,会出现图片截断的情况。如何解决呢?

答案很简单

 

  用TextUtils.ellipsize 先计算出截断后的字符串,然后在setText就OK了

RelativeLayout mainLy = (RelativeLayout) findViewById(R.id.mainLy);TextView tx = new TextView(this);tx.setMaxWidth(200);tx.setSingleLine();tx.setEllipsize(TruncateAt.END);mainLy.addView(tx);String txt = "I'm a text!![face01][face01][face01][face01][face01][face01][face01][face01]";String ellipsizeStr = (String) TextUtils.ellipsize(txt, (TextPaint) tx.getPaint(), 200, TextUtils.TruncateAt.END);  Log.e("tim", "ellipsizeStr:  "+ ellipsizeStr);SmileyParser parser = new SmileyParser(this);CharSequence cs = parser.replace(ellipsizeStr);tx.setText(cs);


修改后的效果图:


同样利用TextUtils.ellipsize也可以解决Android TextView 在截断字符串时出现省略号有时为一个点的情况。先利用TextUtils.ellipsize计算出截断后的String,然后在setText就可以了。

0 0
原创粉丝点击