在xml资源文件中能直接根据控件属性设置字体大小,那怎么在代码中动态设置字体大小呢?
从TextView的源码中可以看到,setTextSize 方法默认设置进去的是 sp
而从资源文件中读取到数据的方法是 getResources().getDimensionPixelSize 拿到的是px
有两种解决方案
1.转换回sp
- TextView mName = (TextView)findViewById(R.id.name);
- mName.setTextSize(DensityUtil.px2sp(context, getResources().getDimensionPixelSize(R.dimen.my_text_size)));
2.直接使用px 见上图 setTextView 第二个方法
- TextView mName = (TextView)findViewById(R.id.name);
- mName.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.my_text_size));