Android P 竖屏横用(只通过上层修改)并固定横屏

1.修改动画横屏显示

--- a/mt8788/frameworks/base/cmds/bootanimation/BootAnimation.cpp
+++ b/mt8788/frameworks/base/cmds/bootanimation/BootAnimation.cpp
@@ -261,13 +261,13 @@ status_t BootAnimation::readyToRun() {
 
     // create the native surface
     sp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),
-            dinfo.w, dinfo.h, PIXEL_FORMAT_RGB_565);
+            dinfo.h, dinfo.w, PIXEL_FORMAT_RGB_565);
 
     SurfaceComposerClient::Transaction t;
     //Neostra dangziming add for bug 1069
     /// M: The tablet rotation maybe 90/270 degrees, so set the lcm config for tablet
     //SurfaceComposerClient::setDisplayProjection(dtoken, DisplayState::eOrientationDefault, Rect(dinfo.w, dinfo.h), Rect(dinfo.w, dinfo.h));
-    t.setDisplayProjection(dtoken, DisplayState::eOrientationDefault, Rect(dinfo.w, dinfo.h), Rect(dinfo.w, dinfo.h));//add by mtk
+    t.setDisplayProjection(dtoken, DisplayState::eOrientation270, Rect(dinfo.h, dinfo.w), Rect(dinfo.h, dinfo.w));//add by mtk
     t.apply();//add by mtk
     //Neostra dangziming end for bug 1069
     t.setLayer(control, 0x40000000)

2.开机后默认固定横屏

--- a/mt8788/frameworks/base/core/java/com/android/internal/view/RotationPolicy.java
+++ b/mt8788/frameworks/base/core/java/com/android/internal/view/RotationPolicy.java
@@ -42,7 +42,7 @@ public final class RotationPolicy {
     private static final String TAG = "RotationPolicy";
     private static final int CURRENT_ROTATION = -1;
 
-    public static final int NATURAL_ROTATION = Surface.ROTATION_0;
+    public static final int NATURAL_ROTATION = Surface.ROTATION_270;
 
     private RotationPolicy() {
     }

3.上层修改系统横屏方向
Android P修改文件

--- a/mt8788/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/mt8788/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -7638,7 +7638,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                     if (preferredRotation >= 0) {
                         return preferredRotation;
                     }
-                    return Surface.ROTATION_0;
+                    return Surface.ROTATION_270;
             }
         }

3.1 Android P 修改的文件

--- a/mt8788/frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/mt8788/frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java
@@ -264,7 +264,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
      *
      * @see #updateRotationUnchecked()
      */
-    private int mRotation = 0;
+    private int mRotation = 3;
 
     /**
      * Last applied orientation of the display.

3.2Android O 修改的文件
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

ynchronized(mWindowMap) {
            final DisplayContent displayContent = getDefaultDisplayContentLocked();
            if (mMaxUiWidth > 0) {
                displayContent.setMaxUiWidth(mMaxUiWidth);
            }
            readForcedDisplayPropertiesLocked(displayContent);
            mDisplayReady = true;
			displayContent.setRotation(3);//修改这个值
			//getDefaultDisplayContentLocked().setRotation(2);
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最乱纷飞的code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值