首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用TextUtils.commaEllipsize

正确使用TextUtils.commaEllipsize
EN

Stack Overflow用户
提问于 2012-11-22 18:39:08
回答 1查看 938关注 0票数 4

我正在寻找一些示例代码,说明如何在TextView中正确地使用它。

我在谷歌搜索中唯一发现的就是这个TextUtils类的测试单元

一些指导将是非常感谢。

编辑:

我查看了这里得到的答案,并试图在我的代码上实现它。我使用了以下代码片段:

代码语言:javascript
复制
    TextView title = (TextView) view.findViewById(R.id.listitemThreadsTitle);
    title.setVisibility(View.VISIBLE);

    TextPaint p = title.getPaint();
    String strTitle = "Moe, Joe, Isaac, Bethany, Cornelius, Charlie";
    title.setText(strTitle);
    float avail = p.measureText(strTitle);
    CharSequence ch = TextUtils.commaEllipsize(strTitle, p, avail, "one more", "%d more");
    title.setText(ch);

但结果却完全不是我们应该做的。

更像是:莫伊,乔,艾萨克,贝塔.

代替:莫伊,乔,艾萨克+3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-22 19:00:48

代码语言:javascript
复制
public static CharSequence commaEllipsize (CharSequence text, TextPaint p, 
                                       float avail, String oneMore, String more)

参数:

文本-要截断的文本

p -用来测量文本的油漆

the -文本可用的水平宽度

oneMore -当前区域设置中“多1”的字符串

more -当前区域设置中"%d多“的字符串

示例用法:

代码语言:javascript
复制
String text = "Apple, Orange, Mango, Banana";
TextView tv = new TextView(context);
float textWidth = tv.getPaint().measureText(text );
String tempStr = TextUtils.commaEllipsize(text, tv.getPaint(), textWidth, 
                                           "1 more", "%d more");
tv.setText(tempStr);

更新:

代码语言:javascript
复制
TextView title = (TextView) view.findViewById(R.id.listitemThreadsTitle);
title.setVisibility(View.VISIBLE);

TextPaint p = title.getPaint();
String strTitle = "Moe, Joe, Isaac, Bethany, Cornelius, Charlie";
title.setText(strTitle);
float avail = title.getMeasuredWidth();
CharSequence ch = TextUtils.commaEllipsize(strTitle, p, avail, "one more", "%d more");
title.setText(ch);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13518450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档