android5.1 显示方向,android5.1竖屏横用显示旋转

android5.1竖屏横用显示旋转

显示屏采用驱动IC为ili9881C,LCD的扫描方式参考:

LCD扫描方向

0818b9ca8b590ca3270a3433284dd417.png

图1

上图中标示的地方是指page 1寄存器0x22不同值对应的第1个像素点,也就是显示原点,左边蓝色箭头表示显示原点在左下角时的扫描方向,右边红色箭头表示显示原点在右上角时的扫码方向。

我们设备正常情况需要的是横屏(比如1280*720),但因为横屏资源少,直接采用了竖屏(720*1280),竖屏横用,下图是720*1280的logo

0818b9ca8b590ca3270a3433284dd417.png

图2

如果我们竖屏竖用(也就是想手机一样),就不需要对图片和LCD扫描方式做更改,但我们是竖屏横用,见图1。

1. kernel阶段的显示

在kernel阶段,如果我们想显示下面的效果:

0818b9ca8b590ca3270a3433284dd417.png

图3

需要送给显示控制器的logo图片如下:

0818b9ca8b590ca3270a3433284dd417.png

图4

这是显示屏厂家默认扫描方式(SS=1&GS=0,对应图1显示原点在右上角),如果我们修改扫描方式为(SS=0&GS=1,对应图1显示原点在左下角),下面的logo也可以有上面的显示效果

0818b9ca8b590ca3270a3433284dd417.png

图5

我们可能这样想,既然是作为横屏使用,那是否可以直接采用横屏的图片(如1280*720分辨率),但咨询显示屏厂家之后说显示屏的扫描方向只能是先扫描一行720个像素点,然后扫描下一行,直到扫描到1280行,而不能像图1中上半部分黄色线头的横向扫描方向,这是由玻璃决定了。

2. android开机动画的显示

进入android系统阶段,可旋转0、90、180、270度,比较灵活,如果是SS=1&GS=0的扫描方式,需要顺时针旋转270度才能正常显示,如果是SS=0&GS=1的扫描方式,旋转90度,考虑到旋转90度的情况比较通用,所以就选择了这种,但要注意,如果开机动画的图片分辨率为竖屏(720*1280),则只能显示图片中间内容,为了解决此问题,需要把图片分辨率改为横屏的(1280*720),同时记得把bootanimation.zip里面desc.txt文件的分辨率也相应改过来,比如:

1280 720 15

p 1 0 part0

p 0 0 part1

\device\qcom\msm8909\system.prop中添加persist.panel.orientation=90,

\frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java文件mRotation定义了旋转反向,如下:

int mRotation =SystemProperties.getInt("persist.panel.orientation", 0) / 90;

简易调试方法:

(1) adb shellsetprop service.adb.root 1

(2) adb shellsetprop persist.panel.orientation 0

(3) adb reboot

修改就生效了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值