2012-03-12 49 views
1

我想使android textview显示标题和距离。我的代码如下Android文本视图 - 将一些常量(非裁剪)文本添加到文本的末尾

<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)" 
+0

我没有这通过测量一个字符的尺寸(使用平均),并手动裁剪我的主文本,和所附的距离文本。 avgCharSize = txtName.getPaint()。measureText(“iw.H012()R”)/ 10.0f; //由于我的文本包含字符,符号和数字 – Ramesh 2012-03-14 07:12:41

回答

0

保持2个TextViews彼此相邻。第一个TextView应该是动态的,第二个应该是不变的“(2 Mi)” 这样你可以很容易地维护它。编码的解决方案,这将需要

  1. 计算可用宽度
  2. 计算由整个字符串覆盖的文本宽度
  3. 如果步骤2的值>步骤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); 
+0

这听起来不错,但是这会在具有不同屏幕尺寸的不同设备上有所不同吗?我试图找到我的textview每行可显示的字符数(在不同的设备中可能会有所不同)。 – Ramesh 2012-03-12 07:15:39

+0

我认为字符的数量可以在任何屏幕尺寸上工作,尽管我从未测试过 – MKJParekh 2012-03-12 07:18:43

相关问题