0


[RK3588 Android12]设置屏幕方向、分辨率和密度

1.设置屏幕方向为横屏

修改device/rockchip/common/BoardConfig.mk
SF_PRIMARY_DISPLAY_ORIENTATIO参数值

diff --git a/device/rockchip/common/BoardConfig.mk b/device/rockchip/common/BoardConfig.mk
index b930d2b1bb..eafa6b95f3 100755--- a/device/rockchip/common/BoardConfig.mk
+++ b/device/rockchip/common/BoardConfig.mk
@@ -162,7+162,7 @@ DEVICE_HAVE_LIBRKVPU ?= true
 #For Recovery Rotation
 TARGET_RECOVERY_DEFAULT_ROTATION ?= ROTATION_NONE
 #For Surface Flinger Rotation-SF_PRIMARY_DISPLAY_ORIENTATION ?=0+SF_PRIMARY_DISPLAY_ORIENTATION :=270

2.设置屏幕分辨率

在控制台输入
wm size 1920x1080

修改device/rockchip/rk3588/rk3588_s/rk3588_s.mk
增加PRODUCT_PROPERTY_OVERRIDES += ro.config.size_override参数值

diff --git a/device/rockchip/rk3588/rk3588_s/rk3588_s.mk b/device/rockchip/rk3588/rk3588_s/rk3588_s.mk
index 27aba9b716..c2cdea4414 100644--- a/device/rockchip/rk3588/rk3588_s/rk3588_s.mk
+++ b/device/rockchip/rk3588/rk3588_s/rk3588_s.mk
@@ -38,7+38,8 @@ PRODUCT_AAPT_PREF_CONFIG := mdpi
 #
 ## add Rockchip properties
 #
-PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=320+PRODUCT_PROPERTY_OVERRIDES += ro.config.size_override=1920,1080+PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=240
 PRODUCT_PROPERTY_OVERRIDES += ro.wifi.sleep.power.down=true
 PRODUCT_PROPERTY_OVERRIDES += persist.wifi.sleep.delay.ms=0

3.设置屏幕密度

在控制台输入
wm density 240

修改device/rockchip/rk3588/rk3588_s/rk3588_s.mk
修改PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density参数值

4.问题

屏幕密度值由320改为240后,底下导航栏会变成显示一个任务栏,现象如下图:
在这里插入图片描述
首先屏蔽底下任务栏显示,修改packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java中的ENABLE_TASKBAR的初始值为false。

diff --git a/packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java b/packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java
index 2d31aa4687..15eadff831 100644--- a/packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java
@@ -191,7+191,7 @@ public final class FeatureFlags {+"predictions to be updated while they are visible to the user.");
 
     public static final BooleanFlag ENABLE_TASKBAR =getDebugFlag(-"ENABLE_TASKBAR", true,"Allows a system Taskbar to be shown on larger devices.");+"ENABLE_TASKBAR", false,"Allows a system Taskbar to be shown on larger devices.");

此时导航栏也不再显示,原因是frameworks\base\packages\SystemUI\src\com\android\systemui\navigationbar\NavigationBarController.java中的函数initializeTaskbarIfNecessary判断设备为平板以后,会调用removeNavigationBar(mContext.getDisplayId());移除导航栏显示。

/** @return {@code true} if taskbar is enabled, false otherwise */
    private boolean initializeTaskbarIfNecessary(){if(mIsTablet){// Remove navigation bar when taskbar is showingremoveNavigationBar(mContext.getDisplayId());
            mTaskbarDelegate.init(mContext.getDisplayId());}else{
            mTaskbarDelegate.destroy();}return mIsTablet;}

frameworks\base\packages\SystemUI\shared\src\com\android\systemui\shared\recents\utilities\Utilities.java中的public static boolean isTablet(Context context)函数,当屏幕的(最小边长度*160/dpi值)< 600,就会判断为设备是平板设备,将其返回值改为false就可以显示导航栏了。

diff --git a/frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java b/frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
index 8d98a7540a..665098941f100644--- a/frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
+++ b/frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
@@ -127,7+127,7 @@ public class Utilities {float smallestWidth =dpiFromPx(Math.min(bounds.width(), bounds.height()),
                 context.getResources().getConfiguration().densityDpi);-return smallestWidth >= TABLET_MIN_DPS;+return false;}
标签: git json github

本文转载自: https://blog.csdn.net/zsq122021821/article/details/128392170
版权归原作者 ~生而为赢~ 所有, 如有侵权,请联系我们删除。

“[RK3588 Android12]设置屏幕方向、分辨率和密度”的评论:

还没有评论