2011-06-28 56 views
5

我想知道是否有方法用'...'替換TextView的最後三個字符,但僅噹噹前文本溢出TextView時纔會這樣。我必須將TextView限制爲1行,但有時文本太長,我想在末尾顯示'...'以指示文本比顯示的內容長。Android TextView文本溢出指示器?

謝謝

回答

16
+0

哇,我不知道這件事。真棒! –

+0

這不是隻是確保被切斷的單詞不在中間?我將如何使用'...'替換最後三個字符? – Bryan

+1

如果您將最大線數設置爲1並將其設置爲END選項,我相信您會得到您要查找的內容。替代操作將非常麻煩,並且基於字體寬度/高度和字符數量,基本上迫使您確定佈局文本的可能長度,然後計算中斷。我真的認爲你應該嘗試使用這個選項和佈局引力來看看你是否能夠在你下到兔子洞之前找到一個可行的解決方案。 –

0

是的,這是一個常見的任務,稱爲截斷。你需要找到你認爲將適合(-3爲3個週期)的最大字符,然後做這樣的事情:

int MAX_CHARS = 55; // for example 
TextView tv = (TextView) findViewById(R.id.your_text_view_id); 
if(tv.getText().toString().length >= MAX_CHARS){ 
    tv.setText(tv.getText().toString().substring(0,MAX_CHARS) + "..."); 
} 

記住一些字符比其他更廣泛,根據字體,所以你可能想在試圖找出你的MAX_CHARS應該是什麼時嘗試所有的大寫字母。 (通常是我的經驗中較寬的字符之一)

+0

我會先嚐試@ nick-campion的方式,然後如果它不適合你,你可以做類似上面的事情。 –

+0

android:ellipsize =「end」會爲你做。 –

+0

@ romain-guy你應該準備今晚參加你的聚會,而不是低估我) –