Android P 源码如何修改屏幕密度

本文详细介绍了如何修改device/system.prop文件来调整屏幕密度,展示了DensityPreference.java中的关键代码,并讨论了密度调整对设置界面的影响。同时提供了adb命令查看密度的方法。适合开发者理解和实践屏幕密度管理。
摘要由CSDN通过智能技术生成

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. 屏幕密度最直观的感受是整个显示界面放大了,但显示内容变少了。其他的具体知识可以参考网上一些优秀的博文。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值