解决Android4.0 系统设置大号字体后布局错乱的问题

Android 4.0的时候,系统可以设置显示大号字体,但是这样一来,4.0一下的程序会出现布局错乱的问题,解决方法是修改fontscale值,代码如下:

Resources resource = getResources();
Configuration c =res.getConfiguration() ;
c.fontScale=1.0;

res.updateConfiguration(c, resource.getDisplayMetrics());

建议这个方法放在onResume方法中,这样可以确保程序启动后,退到后台再修改字体大小回到程序时,依然可以显示为我们指定的字体缩放大小。fontScale默认值为1,一般4.0设置字体为大号后该值会为1.3,该值参考:http://d.hatena.ne.jp/baroqueworksdev/20111029/1319879629 中的说明:

Font size : Small

10-29 08:49:51.004: I/ActivityManager(85): Config changed: {0.85 310mcc260mnc en_US layoutdir=0 sw320dp w320dp h480dp nrml port finger qwerty/v/v tball/v s.8}



Font size : Normal

10-29 08:48:50.174: I/ActivityManager(85): Config changed: {1.0 310mcc260mnc en_US layoutdir=0 sw320dp w320dp h480dp nrml port finger qwerty/v/v tball/v s.5}



Font size : Large

10-29 08:50:37.494: I/ActivityManager(85): Config changed: {1.15 310mcc260mnc en_US layoutdir=0 sw320dp w320dp h480dp nrml port finger qwerty/v/v tball/v s.9}



Font size : Extra large

10-29 08:51:19.314: I/ActivityManager(85): Config changed: {1.3 310mcc260mnc en_US layoutdir=0 sw320dp w320dp h480dp nrml port finger qwerty/v/v tball/v s.10}


你可能感兴趣的:(解决Android4.0 系统设置大号字体后布局错乱的问题)