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本身在橫向顯示的時候,有些資源橫向顯示會有問題, 所以不推薦使用~