android修改字体大小

frameworks/base/core/java/android/content/res/Configuration.java文件的
public void setToDefaults() {
        fontScale = 1;        //1改为3
        mcc = mnc = 0;
        locale = null;
        userSetLocale = false;
        touchscreen = TOUCHSCREEN_UNDEFINED;
        … …

然后将fontScale的值由1改为了3,但是没有效果,很纳闷,为什么会没有用呢。后来找了很久的原因,发现fontScale值是不可以乱设的,他只能是某一些已经定义好了的固定值,这些值已经定义在了packages\apps\Settings\res\values\arrays.xml文件中的:
<string-array name="entryvalues_font_size" translatable="false">
        <item>0.85</item>
        <item>1.0</item>
        <item>1.15</item>
        <item>1.30</item>
</string-array>
刚刚改为3,3是一个无效的值,所以没有用,改为列表里面的其他值就OK了。
方法二:
在packages\apps\Settings\res\xml\display_setting.xml里面找到:
        <ListPreference
                android:key="font_size"
                android:title="@string/title_font_size"
                android:summary="@string/summary_font_size"
                android:entries="@array/entries_font_size"
                android:entryValues="@array/entryvalues_font_size"
                android:dialogTitle="@string/dialog_title_font_size"
android:defaultValue="@string/large_font" />
修改defaultValue的值即可。
方法三:
用属性来控制默认字体大小,这样修改就方便多了。
(1)frameworks/base/core/java/android/content/res/Configuration.java:
import android.os.Build;
public void setToDefaults() {
String scale = Build.DEFAULT_FONTSCALE;
if ( scale.equalsIgnoreCase( Build.UNKNOWN ) == false )
{
fontScale = Float.valueOf( Build.DEFAULT_FONTSCALE ).floatValue();
}
else
{
fontScale = 1.0f;
}
(2)frameworks\base\core\java\android\os\Build.java
        /**a property to set fontScale */
public static final String DEFAULT_FONTSCALE = getString("ro.property.fontScale");
(3)这样就可以通过系统属性的方式设置好默认字体大小。
注:编译的时候要先执行:make update-api
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值