记一次更改为了适配盒子,修改了盒子系统density值的过程

将A盒子上的Launcher App移植到B盒子时,发现屏幕显示不正确。分析发现A盒子1dp=2px,而B盒子1dp=1.5px。通过查看Android源码,了解到需修改ro.sf.lcd_density属性。解决方案包括使用adb shell调整density或修改system/build.prop文件,成功适配B盒子的同时,还需处理因修改density引发的虚拟Home键显示问题。
摘要由CSDN通过智能技术生成

1. 背景

因为项目需要,需要把我在一个A盒子上写的Launcher App,移植到B盒子上,唯一的要求就是快。

A盒子和B盒子都是1080PUI.

2. 遇到问题And找解决方法

我简单挪过去了后发现,屏幕显示不对,经过我自己分析,发现,A盒子上1dp=2px,而B盒子上1dp=1.5px,

我们做Android的都知道,densityDpi/160就是dp和px的比例,也就是density。而在Android里得到density:

density=context.getResources().getDisplayMetrics().density;

于是我就查看源码:

/**
     * Return the current display metrics that are in effect for this resource 
     * object.  The returned object should be treated as read-only.
     * 
     * @return The resource's current display metrics. 
     */
    public DisplayMetrics getDisplayMetrics() {
        return mResourcesImpl.getDisplayMetrics();
    }

再往里跟

DisplayMetrics getDisplayMetrics() {
        if (DEBUG_CONFIG) Slog.v(TAG, "Returning DisplayMetrics: &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值