【菜鸟学安卓】- TextView的文字大小 setTextSize 和 getTextSize 设置
2016-05-03 12:16
791 查看
以我自己的手机为例:
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());这样才能得到原来的高度。
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());这样才能得到原来的高度。
相关文章推荐
- Android的TextView与Html相结合的具体方法
- Android中实现为TextView添加多个可点击的文本
- android textview 显示html方法解析
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android实现TextView中文字链接的4种方式介绍及代码
- android TextView属性的详细介绍 分享
- Android开发实现TextView显示丰富的文本
- Android自定义TextView实现drawableLeft内容居中
- Android重写TextView实现文字整齐排版的方法(附demo源码下载)
- Android TextView实现跑马灯效果的方法
- Android TextView跑马灯效果实现方法
- Android编程设置TextView颜色setTextColor用法实例
- Android实现TextView两端对齐的方法
- Android编程中TextView宽度过大导致Drawable无法居中问题解决方法
- Android TextView显示html样式的文字
- Android TextView字体颜色设置方法小结
- android TextView加下划线的方法
- android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
- Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)
- Android TextView 设置字体大小的方法