零
一、代码中的textsize属性
TextView的textsize属性我们经常会用到,经常带xml中设置(产品也经常要改,顺便再改个色儿),也可以在代码中动态设置。但是小德在实际使用时发现了一个值得注意的地方。
二、单位问题
Android中有px、dp(dip)、sp作为单位。1px就指的是物理上的一个像素点,明显是和设备有关的,而dp是设备无关的单位,是为了更好地进行适配,sp一般作为字体大小单位,与缩放无关。
小德这里是使用dp作为textsize的大小的(为了不让系统字体大小影响自己的APP),但是在get、settextsize的时候就出现了单位问题。
我们使用 textview.getTextSize()
获取textsize,返回的是以px为单位的值,但是我们在使用 textView.setTextSize(float size)
的时候默认的是使用的dp单位,这就很容易造成混乱了。
三、解决也很简单
TextView的settextsize其实有个重载: setTextSize(int unit, float size)
,第一个参数就是使用TypedValue来指定单位的。TypedValue可选的属性有很多,这里我们用到的是:COMPLEX_UNIT_DIP
COMPLEX_UNIT_PX
COMPLEX_UNIT_SP
,分别代表的是dp、px和sp。
//作为Android开发的初学者,如果我有错误的地方或者不足的话欢迎大家指正。希望与大家一同进步。