Android文本视图 - 在文本末尾添加一些常量(非裁剪)文本

时间:2012-03-12 06:55:56

标签: android android-layout

我正在尝试制作一个android textview来显示标题和距离。我的代码如下

<TextView android:id="@+id/name" android:textSize="15dip"
android:ellipsize="end" android:maxLines="2"
android:layout_width="fill_parent" android:layout_height="wrap_content" />

填写2行后,文本视图中的文本将自动裁剪。如果我用文字追加距离。距离也被裁掉了。我需要保持标题裁剪,但不是距离。

例如

"This is title line 1 
and this is title lin... (2 Mi)"

2 个答案:

答案 0 :(得分:0)

保持两个TextView彼此相邻。第一个TextView应该是动态的,第二个应该是常量“(2 Mi)” 这样您就可以轻松维护它。对此的编码解决方案需要

  1. 计算可用宽度
  2. 计算整个字符串所涵盖的文字宽度
  3. 如果步骤2的值>步骤1的值,减去子字符串
  4. 这听起来像是一种效率低下的方式

答案 1 :(得分:0)

您可以通过在xml中设置来显示要显示的文本的修复长度

android:maxLength="50"

然后编码方,

String str = "Your String";
String constantStr = "2 Mi";
if(str.length()>43)
{
    str = str.subString(0,42)+"..."+constantStr;
}
else
{
    str = str + " " + constantStr; 
}
tv.setText(str);