我有一个包含多行TextView的
Android应用程序布局.当屏幕处于纵向方向时,TextView可以在横向模式下运行时显示不同长度的文本.此外,当在小屏幕上运行时,TextView可以在较大屏幕上运行时显示不同长度的文本.
有什么办法可以检查文本是否适合或将被截断?或者有什么办法可以检查TextView是否满了?
问题是TextView可能包含不同数量的行,这取决于它是横向,纵向,小屏幕,大屏幕等.
感谢您的建议,
最好的祝福,
詹姆士
解决方法
这些答案对我来说不是很好.这是我最后做的
Paint measurePaint = new Paint(myTextView.getPaint()); float pWidth = measurePaint.measureText("This is my big long line of text. Will it fit in here?"); float labelWidth = myTextView.getWidth(); int maxLines = myTextView.getMaxLines(); while (labelWidth > 0 && pWidth/maxLines > labelWidth-20) { float textSize = measurePaint.getTextSize(); measurePaint.setTextSize(textSize-1); pWidth = measurePaint.measureText("This is my big long line of text. Will it fit in here?"); if (textSize < TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_SP,7,getContext().getResources().getDisplayMetrics())) break; } myTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,measurePaint.getTextSize());
我不是说这将适用于每种情况,因为我在这里切割角落,但一般的想法是用textview的颜色来测量文本,并保持缩小,直到它适合文本视图.