【问题标题】:android know at runtime that text is cutandroid在运行时知道文本被剪切
【发布时间】:2015-02-02 23:39:37
【问题描述】:

我有一个 TextView,我想在运行时知道文本是否太长。 使这个变得棘手并因此没有找到解决方案的要求是我不想使用 ellipsize,因为我不想在最后显示三个点。 想法? 谢谢

【问题讨论】:

  • 显示的文本太长,即如果是椭圆形,它将是“lurm ipsum bla bla bla ...”。但要求是 1. 不要使用 ellipsize 2. 要知道在运行时是这种情况
  • 在运行时计算起来更困难,但我认为并非不可能......无论如何你也可以使用其他参数:marquee (android:ellipsize="marquee")。使用此参数,将剪切线,但不会显示 3 个点。
  • 这个参数对你有效吗?您还应该使用所需的行数。 android:lines="1"
  • 为您的 cmets 提供帮助的人: user395:我只想知道,如果文本被剪切,仅此而已。与宽度或高度无关。 Juan: android:ellipsize="marquee" 没有去掉三个点。

标签: android textview


【解决方案1】:

要检查运行时,您必须使用绘制对象。

文档参考:Paint.measureText(String)TextView.getPaint()

//下面的代码必须在TextView在屏幕上布局之后运行。

Paint p = textView.getPaint();
float width = p.measureText("your text here");
if(width > textView.getWidth()){
   // bigger
}

TextUtils 类还有一些你可能感兴趣的有趣方法,例如计算椭圆大小的方法:TextUtils.ellipsize(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多