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、解决问题,整个布局不会变动了。