1、getTextSize返回值是以像素(px)为单位,而setTextSize()默认参数是以sp为单位。调用重载函数,第一个参数是一个默认值 TypedValue.COMPLEX_UNIT_SP。
2、 getDimension(...)方法最终也会将数据处理成px返回。
3、经典例子:
<dimen name "font1">18ps</dimen>
方法1:mText.setTextSize(18);
方法2:mText.setTextSize(getResources().getDimension(R.dimen.font1));
方法3:mText.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font1));
方法4:mText.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
方法1 = 方法3 = 方法4 != 方法2(方法2的字体会变大)
方法1会调用方法4;方法3和方法4是两种不同的写法,但实现效果一致。
参考:
网友评论