1.字体大小非常简单:
vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/freeme_defaults.xml
<!-- freeme.biantao, 20170307. Default font scale. [1.0:default 0.85:small 1.15:large 1.3:largest] -->
<string name="def_font_scale" translatable="false">1.45</string>
这里默认为最大
2.字体为粗体,就显得很不简单!
刚开始,多少人为之疯狂,抓耳挠腮,百思不得其解(姐);
最后,还好我坚持住了,明白了其中的道理
分两步走:
(1)修改framework下的/frameworks/base/core/java/android/provider$Settings.java
private static final float DEFAULT_FONT_SCALE = 1.0f;
private static final int DEFAULT_FONT_WEIGHT = 0;//主要修改这个,改为300,为什么?等一会儿你就知道了,哈哈!
(2)修改vendor下/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/accessibility$FontWeightAdjustmentPreferenceController.java
public class FontWeightAdjustmentPreferenceController extends TogglePreferenceController {
//*/tyd,lxd,20221030, add bold font
static final int BOLD_TEXT_ADJUSTMENT = //700-400=300
FontStyle.FONT_WEIGHT_BOLD - FontStyle.FONT_WEIGHT_NORMAL;public FontWeightAdjustmentPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}@Override
public int getAvailabilityStatus() {
return AVAILABLE;
}@Override
public boolean isChecked() {
return Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.FONT_WEIGHT_ADJUSTMENT, 300) == BOLD_TEXT_ADJUSTMENT;//为啥呢?因为要使两边的值相等才加粗字体,如果不等,无法加粗字体。
不得不说,设计之巧妙,不,奇妙诡思。
}@Override
public boolean setChecked(boolean isChecked) {
return Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.FONT_WEIGHT_ADJUSTMENT, (isChecked ? BOLD_TEXT_ADJUSTMENT : 0));
}
}
到这里,就结束了,相信你修改这两个文件之后,你就能心如所愿的解决了当前的需求!