当前位置: 代码迷 >> 综合 >> 2021-03-10 Android7.1 RK3288修改屏幕物理分辨率 Physical Size以及rk3288 修改hdmi分辨率后整个布局都会改变,很不协调的问题
  详细解决方案

2021-03-10 Android7.1 RK3288修改屏幕物理分辨率 Physical Size以及rk3288 修改hdmi分辨率后整个布局都会改变,很不协调的问题

热度:95   发布时间:2023-11-27 12:40:23.0

Android7.1 RK3288修改屏幕物理分辨率 Physical Size以及rk3288 修改hdmi分辨率后整个布局都会改变,很不协调的问题

 

一、通过 shell 命令 wm size 查看到 Physical Size (物理尺寸) 1080x2246 ,将初始化的这个物理分辨率进行修改指定的分辨率;通过命令 wm size <width>x<height> 只能修改的是Override size的尺寸,也叫做覆盖尺寸。有些app 在获取设备的分辨率的时候,大部分会获取当前分辨率 ,也就是如果有Overide size的时候用overide size,没有就用physical size 尺寸。

二、wm size:查看和设置显示分辨率

root@rk3288:/ # wm size        // 查看当前的分辨率
wm size
Physical size: 1920x1080
root@rk3288:/ # wm size 1440x900        // 设置分辨率
wm size 1440x900
root@rk3288:/ # wm size
wm size
Physical size: 1920x1080        // 原始分辨率
Override size: 1440x900         // 设置的分辨率
root@rk3288:/ # wm size reset        // 恢复设置前的分辨率
wm size reset
root@rk3288:/ # wm size
wm size
Physical size: 1920x1080

三、wm density:查看和设置显示密度

root@rk3288:/ # wm density    // 查看当前显示密度
wm density
Physical density: 160
root@rk3288:/ # wm density 320    // 修改显示密度
wm density 320
root@rk3288:/ # wm density
wm density
Physical density: 160    // 原始显示密度
Override density: 320    // 修改后的显示密度
root@rk3288:/ # wm density reset    // 恢复设置前的显示密度
wm density reset
root@rk3288:/ # wm density
wm density
Physical density: 160

四、wm overscan:设置显示区域,依次为左、上、右、下

root@rk3288:/ # wm overscan 100,200,300,400    // 设置显示区域,设置的值为举例边缘的像素数
wm overscan 100,200,300,400
root@rk3288:/ # wm overscan reset    // 恢复显示区域
wm overscan reset

五、解决实际的bug:rk3288 修改hdmi分辨率后整个布局都会改变,很不协调,分析的原因是开机的时候在hardware里面会根据设置的hdmi的分辨调整 Physical Size导致的。解决方案是固定住 Physical Size。

      1、修改分辨率reboot后界面变化

      2、固定住Physical Size,hardware\rockchip\hwcomposer\hwcomposer.cpp ,添加下面的代码

 

 

     3、解决问题,整个布局不会变动了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  相关解决方案