天天记录 - Android TextView setMaxLines后获取完整高度

当在Android的TextView中使用setMaxLines限制行数后,getHeight方法只会返回限定行数的高度。要获取显示所有内容时的完整高度,可以通过源码分析找到解决方案。关键在于调用TextView的getDesiredHeight方法。
摘要由CSDN通过智能技术生成



      TextView设置完setMaxLines后,通过TextView.getHeight方法获取的是当前行数的高度,而非文字完全显示的高度。

      以下左边的图是《选择》这首诗一共只显示5行,右侧的图片中可以看到5行文字的高度,但是此时获取不到完整显示时TextView的高度

		textView.setMaxLines(5);
		textView.getHeight();   // 125



                



获取TextView的完整高度,核心代码

	private int getTextViewHeight(TextView pTextView) {
		Layout layout = pTextView.getLayout();
		int desired = layout.getLineTop(pTextView.getLineCount());
		int padding = pTextView.getCompoundPaddingTop() + pTextView.getCompoundPaddingBottom();
		return desired + padding;
	}




完整代码

public class MainActivity extends Activity {
	
	private static final String value = "选   择    汪国真\n你的路\n已经走了很长很长\n走了很长"
			+ "\n可还是看不到风光\n你的心很苦\n很彷徨\n没有风帆的船\n不比死了强\n没有罗盘的风帆
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值