一.在BaseActivity中覆盖getResources方法
@Override public Resources getResources() { Resources res = super.getResources(); Configuration config = res.getConfiguration(); config.fontScale = 1f; //1 设置正常字体大小的倍数 res.updateConfiguration(config, res.getDisplayMetrics()); return res; }二.利用xml文件
1.在BaseActivity里
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (1 == states) { setTheme(R.style.Default_TextSize_Small); } else if (2 == states) { setTheme(R.style.Default_TextSize_Middle); } else { setTheme(R.style.Default_TextSize_Big); } }
2.在布局里
<TextView android:id="@+id/tv_good_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:layout_marginRight="11dp" android:layout_toLeftOf="@id/tv_good_time" android:layout_toRightOf="@id/img_good" android:textSize="?textsize" android:text="@string/defaul_title" />
android:textSize="?textsize"用这种方法,这句话比写,否则没有作用
3.在attr文件里
<resources> <attr name="textsize" format="reference|dimension" /> <attr name="textsize2" format="reference|dimension" /> <attr name="textsize3" format="reference|dimension" /> </resources>
4.在style文件里申明
<style name="Default_TextSize_Small"> <item name="textsize">@dimen/tset_small</item> <item name="textsize2">@dimen/tset_middle</item> <item name="textsize3">@dimen/tset_big</item> </style> <style name="Default_TextSize_Middle"> <item name="textsize">@dimen/tset_small2</item> <item name="textsize2">@dimen/tset_middle2</item> <item name="textsize3">@dimen/tset_big2</item> </style> <style name="Default_TextSize_Big"> <item name="textsize">@dimen/tset_small3</item> <item name="textsize2">@dimen/tset_middle3</item> <item name="textsize3">@dimen/tset_big3</item> </style>5. dimen里面设置的字体大小
<resources> <dimen name="tset_small">12sp</dimen> <dimen name="tset_middle">16sp</dimen> <dimen name="tset_big">20sp</dimen> <dimen name="tset_small2">18sp</dimen> <dimen name="tset_middle2">22sp</dimen> <dimen name="tset_big2">26sp</dimen> <dimen name="tset_small3">22sp</dimen> <dimen name="tset_middle3">26sp</dimen> <dimen name="tset_big3">30sp</dimen> </resources>三.利用style.xml 方法
1.在attr文件里
<resources> <attr name="fontsize_1" format="dimension"></attr> <attr name="fontsize_2" format="dimension"></attr> <attr name="fontsize_3" format="dimension"></attr> </resources>
2.在styles.xml里