我已經找到了「厚臉皮」的解決方案,以測量文本的高度多行的TextView 的問題: -
//Calculate the height of the text in the MULTILINE TextView
int textHeight = textView.getLineCount() * textView.getLineHeight();
if (textHeight > textViewHeight) {
//Text is truncated because text height is taller than TextView height
} else {
//Text not truncated because text height not taller than TextView height
}
但是這個解決方案有一些警告: -
首先,關於getLineHeight(),文本內的標記可能導致單個行比這個高度更高或更短,並且該佈局可能包含額外的第一行或最後一行的填充。請參閱http://developer.android.com/reference/android/widget/TextView.html#getLineHeight()
其次,應用程序需要計算TextView的實際高度(以像素爲單位),並且(對於我的佈局)它可能不像textView.getHeight()那麼簡單,並且計算可能會因一個佈局到另一個佈局。
我會推薦避免 LinearLayout,因爲TextView的實際像素高度可能因文本內容而異。我正在使用RelativeLayout(請參閱http://pastebin.com/KPzw5LYd)。
使用這個 RelativeLayout的,我可以計算我 TextView的高度如下: -
//Calculate the height of the TextView for layout "http://pastebin.com/KPzw5LYd"
int textViewHeight = layout1.getHeight() - button1.getHeight() - button2.getHeight();
希望幫助,
問候,
詹姆斯
關於你的XML,這對我不起作用,因爲它設置singleLine =「true」,它不是一個MULTILINE TextView。關於檢查這篇文章,這對我不起作用,因爲「testPaint.measureText(text)」只計算文本寬度。它不計算MULTILINE TextView的文本高度。我現在已經找到了另一個解決方案,我將很快添加。 – James
該答案不涉及多行文本視圖。它只檢查文本是否會填充textveiw的*寬度* – LairdPleng
問題不僅是詢問多行;它也會詢問關於在文本視圖中的「擬合」...... – MiStr