【菜鸟学安卓】- TextView的文字大小 setTextSize 和 getTextSize 设置

以我自己的手机为例:


float fontScale = getResources().getDisplayMetrics().scaledDensity;
		
System.out.println("fontScale=" + fontScale);//结果为:fontScale=1.86

textView = (TextView)findViewById(R.id.textView);
		
System.out.println("系统默认:"+textView.getTextSize());//结果为:系统默认:26
		
textView.setTextSize(20);
		
System.out.println("设置默认:"+textView.getTextSize());设置默认:37.2

textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,20);
		
System.out.println("DIP设置:"+textView.getTextSize());//结果为:DIP设置:40
		
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,20);
		
System.out.println("PX设置:"+textView.getTextSize());//结果为:PX设置:20

textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
		
System.out.println("SP设置:"+textView.getTextSize());//结果为:设置默认:37.2

由上面的结果可知,


当这只 PX 的值 为20时 打印出来的值也是二十,说明getTextSize获取的值是px的值


setTextSize 默认的和设置 sp的值都是 37.2,说明设置setTextSize采用的参数是SP的值,


sp 和px的换算则是 20 * 1.86 = 37.2。


所以当我们在改变TextView的文字高度时就不能直接getTextSize 然后 setTextSize再赋值回去,因为两者采用的单位不同。


由于获取的值是px的值,所以我们再设置回去的时候自然也得用px才是一样的大小,


所以就得采用textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,textView.getTextSize());这样才能得到原来的高度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值