概述
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就可以了。
最后
以上就是淡淡小兔子为你收集整理的TextView图文混排图片被截断的问题以及Android省略号只有一个点的问题的全部内容,希望文章能够帮你解决TextView图文混排图片被截断的问题以及Android省略号只有一个点的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复