[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 showing
            removeNavigationBar(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..665098941f 100644
--- 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;
     }
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值