修改屏幕显示方向

1.修改屏幕方向

如果显示屏支持横竖屏,直接修改MTK_LCM_PHYSICAL_ROTATION的值
① 修改device/testdd/testdd6735_35g_m0/ProjectConfig.mk

-MTK_LCM_PHYSICAL_ROTATION = 0
+MTK_LCM_PHYSICAL_ROTATION = 270

②修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_debug_defconfig

-CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"
+CONFIG_MTK_LCM_PHYSICAL_ROTATION="270"

③修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_defconfig

-CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"
+CONFIG_MTK_LCM_PHYSICAL_ROTATION="270"

④修改vendor/mediatek/proprietary/bootable/bootloader/lk/project/testdd6735_35g_m0.mk

-MTK_LCM_PHYSICAL_ROTATION = 0
+MTK_LCM_PHYSICAL_ROTATION = 270

平板平台,这种修改整个系统都变竖屏显示了,包括logo、动画,tp等

2.屏幕180翻转,通过硬件OVL来实现

① 修改device/testdd/testdd6735_35g_m0/ProjectConfig.mk

+MTK_LCM_PHYSICAL_ROTATION_HW = yes

②修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_debug_defconfig

+CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y

③修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_defconfig

+CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y

④修改vendor/mediatek/proprietary/bootable/bootloader/lk/project/testdd6735_35g_m0.mk

+MTK_LCM_PHYSICAL_ROTATION_HW=yes
+DEFINES += MTK_LCM_PHYSICAL_ROTATION_HW

⑤修改vendor/mediatek/proprietary/hardware/hwcomposer/Android.mk

+ifeq ($(MTK_LCM_PHYSICAL_ROTATION_HW), yes)
+	LOCAL_CFLAGS += -DMTK_LCM_PHYSICAL_ROTATION_HW
+endif
3.模拟sensor旋转屏幕显示
  • 源码位置:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
  @Override
  public int rotationForOrientationLw(int orientation, int lastRotation) {
+    if (true) {
+        return Surface.ROTATION_90;
+    }
		...

模拟sensor旋转屏幕,根据需要返回角度(顺时针旋转),但是在刚开完机时会看到转屏动作

4.修改动画方向

对动画资源本身不作处理,直接修改其显示方向

  • 源码位置:framework/base/cmds/bootanimation/BootAnimation.cpp
 status_t BootAnimation::readyToRun(){
 	...
   // 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));
 +  // 旋转180
 +  SurfaceComposerClient::setDisplayProjection(dtoken, DisplayState::eOrientation180, Rect(dinfo.w, dinfo.h), Rect(dinfo.w, dinfo.h));
5.修改ro.sf.hwrotation值

在config目录中对应工程下system.prop文件中加入 ro.sf.hwrotation=90(或270)可以实现90度和270度的旋转,不过此设定只是改变android部分 的旋转,logo部分不会旋转,动画会旋转,同时android本身在横向显示的时候,有些资源横向显示会有问题, 所以不推荐使用~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值