1. device/模块公司名称/模块平台名称/system.prop
比如:device/qcom/sdm660_64/system.prop
这个文件添加字段:ro.sf.lcd_density=300 (300为密度值,根据自己要求填写不同的值)
2. 屏幕密度修改可能导致设置-->显示-->显示大小里面设置不正常。
可以修改如下代码:
packages\apps\Settings\src\com\android\settings\display\DensityPreference.java
@Override
protected void onDialogClosed(boolean positiveResult) {
if (positiveResult) {
try {
final Resources res = getContext().getResources();
final DisplayMetrics metrics = res.getDisplayMetrics();
final int newSwDp = Math.max(Integer.parseInt(getText()), 300);
final int minDimensionPx = Math.min(metrics.widthPixels, metrics.heightPixels);
final int newDensity = DisplayMetrics.DENSITY_MEDIUM * minDimensionPx / newSwDp;
final int densityDpi = Math.max(newDensity, 120);
DisplayDensityUtils.setForcedDisplayDensity(Display.DEFAULT_DISPLAY, densityDpi);
} catch (Exception e) {
// TODO: display a message instead of silently failing.
Slog.e(TAG, "Couldn't save density", e);
}
}
}
这里有两个数值,直接写到了代码里面。可以通过调整这两个值,让设置界面正常,不至于会设置不了。(注:作者未实际验证,如果设置界面不正常,可以尝试一下)。
3. adb查看屏幕密度
adb shell wm density
4. 屏幕密度最直观的感受是整个显示界面放大了,但显示内容变少了。其他的具体知识可以参考网上一些优秀的博文。