2012-03-12 48 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

相關問題