需要做系统底层的修改,具体实现方法如下(以实际项目为例):480*800 Lcd旋转90°
-
更改MTK_LCM_PHYSICAL_ROTATION的值
MTK_LCM_PHYSICAL_ROTATION = 90
所涉及到的文件有:
bootable/bootloader/lk/project/xxxxxx.mk
device/raindi/xxxxxx/ProjectConfig.mk
kernel-3.10/arch/arm64/configs/xxxxx_defconfig
kernel-3.10/arch/arm64/configs/xxxxxx_debug_defconfig -
修改对应的logo 文件,以480X800为例, 修改为 BOOT_LOGO = wvgalnl
有两处文件需要修改
a. device/raindi/XXX/ProjectConfig.mk 影响到关机下充电的动画界面
b. bootable/bootloader/lk/project/xxx.mk 图片的文件夹名称 -
开机动画的旋转
涉及到的文件:
frameworks/native/services/surfaceflinger/DisplayDevice.cpp
将setProjection(DisplayState::eOrientationDefault, mViewport, mFrame);修改为:setProjection(DisplayState::eOrientation90, mViewport, mFrame);
修改的参数是:eOrientationDefault 改为 eOrientation90 -
触摸屏坐标的修改
显示屏旋转了90°,那么触摸屏也要旋转90°,这样才能方便使用。
涉及到的文件:
kernel-3.10/drivers/input/touchscreen/mediatek/GT9XX/gt9xx_driver.c
涉及的函数:tpd_down、tpd_up
修改方法:int temp=x; x=y; y=480-x; -
横屏 Navigation_bar 显示异常
解决方案:
frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml
适配90度旋转 navigation_bar
在这里插入代码片--- a/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml
+++ b/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml
@@ -26,7 +26,7 @@
android:background="@drawable/system_bar_background"
>
- <FrameLayout android:id="@+id/rot0"
+ <FrameLayout android:id="@+id/rot90"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
@@ -173,10 +173,9 @@
/>
- <FrameLayout android:id="@+id/rot90"
+ <FrameLayout android:id="@+id/rot0"
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:visibility="gone"
android:paddingTop="0dp"
>
- 编译
因为我们已经更改了LCD原来的显示方式,因此将上述修改做好之后,需要clean之后,全部重新编译。
make clean
make 2>&1 | tee build.log