MULTILINE 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() ほど単純ではない可能性があり、計算はレイアウトごとに異なる場合があります。
TextView の実際のピクセルの高さはテキストの内容によって異なる可能性があるため、 LinearLayoutを避けることをお勧めします。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();
それが役立つことを願って、
よろしく、
ジェームズ