欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[RK3128][Android7.1] 同一输入源下根据不同屏幕大小,正确适配显示分辨率

程序员文章站 2022-05-11 23:19:51
...

[RK3128][Android7.1] 同一输入源下根据不同屏幕大小,正确适配显示分辨率

Platform: Rockchip
OS: Android 7.1.2
Kernel: 4.4

在上一篇中介绍了使用强制分辨率显示的问题:
[RK3128][Android7.1] android端强制使用固定分辨率显示内容

当LCD与HDMI OUT分辨率不一致时,在切换中会导致显示内容被缩放,从而造成在更高分辨率一端只有左上角有显示内容,无法做到全屏显示。因此需要根据不同屏幕类型设置不同的显示分辨率,从面避免界面被缩放

 
        if (!screen) {
                dev_err(dev_drv->dev, "screen is null!\n");
@@ -1628,6 +1631,17 @@ static int rk312x_lcdc_set_par(struct rk_lcdc_driver *dev_drv, int win_id)
                         win->area[0].ysize = win->area[0].yact;
                     }
        }
+       DBG(1,"lcdc%d>>%s>>11111type:%d\n", lcdc_dev->id, __func__,screen->type);
+       if (screen->type == SCREEN_HDMI){
+               DBG(1,"lcdc%d>>%s>>11111\n", lcdc_dev->id, __func__);
+               win->area[0].xsize = 1280;
+               win->area[0].ysize = 720;
+       } else {
+               DBG(1,"lcdc%d>>%s>>11112\n", lcdc_dev->id, __func__);
+               win->area[0].xsize = 854;
+               win->area[0].ysize = 480;
+       }
+       
        if (screen->mode.vmode & FB_VMODE_INTERLACED) {
                win->area[0].ysize /= 2;
                win->area[0].dsp_sty = win->area[0].ypos / 2 +