Android的启动默认是横屏或者竖屏
我们的TV本来是横屏显示,但是有客户竟然要竖屏显示,昨天快下班收到的需求,竟然说7.19就要搞定。思路有2个,一个就是修改LCD的默认输出,但是这个不是我这个水平能轻而易举搞定的。另外一个就是底层应该给上层porting出接口。像这种系统性的接口一般在build.prop里。
找到一个相关度比较大的属性ro.sf.hwrotation=270,和旋转有关的,联想到0,90,180,270.试试吧,将其改为ro.sf.hwrotation=0,测试了一下,OK,满足客户要求了,就早点下班了。
/ device/samsung/smdk4x12/system.prop(ro.sf.hwrotation )
今天来了搜了一下相关的内容,还是发现了不少知识
1,可以在init.rc里指定系统是横屏还是竖屏

[普通]  鉴于普通副本

  1. 对应setProp ro.sf.hwrotation 0指定默认输出不旋转(我们默认输出时竖屏)

  2. #对应setProp ro.sf.hwrotation 270指定旋转270度输出

2。这个指定角度,Android默认只有0度和270度有效,180度无效,如果想使用180度,需要修改源码
修改文件的框架/基地/服务/的surfaceflinger / SurfaceFlinger.cpp

在方法

[CPP]  鉴于普通副本

  1. 无效 GraphicPlane :: setDisplayHardware(DisplayHardware * HW)里加

  2. 案例 180:

  3. displayOrientation = ISurfaceComposer :: eOrientation180;

  4. 打破;

这样子就支持了180度了
3,还有更详细的 - 安卓4.1默认窗体旋转180度  
1)设置属性值
在系统/ build.prop文件中加入ro.sf.hwrotation = 180

2)设置窗体默认显示方向
在框架/本地/服务/的surfaceflinger / SurfaceFlinger.cpp文件中找到方法
setDisplayHardware
在交换机中加入

[CPP]  鉴于普通副本

  1. 案例 180:

  2. displayOrientation = ISurfaceComposer :: eOrientation180;

  3. 打破;

3)。设置窗体动画旋转方向
     一>在框架/底座/核心/ JAVA /机器人/视图/ Surface.java加入方法

[CPP]  鉴于普通副本

  1. / **

  2. * @隐藏

  3. * /

  4. 公共 静态 诠释 getDefaultRotation(){

  5. 返回 android.os.SystemProperties.getInt(“ro.sf.hwrotation” ,0); / / 180

  6. }

  7. / **

  8. * @隐藏

  9. * /

  10. 公共 静态 诠释 getDefaultRotationIndex(){

  11. 整型 旋转= getDefaultRotation();

  12. 开关(旋转){

  13. 情况下 0:

  14. 返回 ROTATION_0;

  15. 案例 90:

  16. 返回 ROTATION_90;

  17. 案例 180:

  18. 返回 ROTATION_180;

  19. 案例 270:

  20. 返回 ROTATION_270;

  21. }

  22. 返回 ROTATION_0;

  23. }

B>在框架/基地/服务/ JAVA / COM /机器人/服务器/ VM / ScreenRotationAnimation.java文件中找到(android4.1)方法setRotation
或(android4.2)方法setRotationInTransaction修改deltaRotation(旋转,Surface.ROTATION_0);
为deltaRotation(旋转,表面getDefaultRotationIndex());

4)修改最近程序视图方向
   在框架/底座/包/ systemui / SRC / COM /机器人/ systemui / RecentsPanelView.java文件中修改如下
   私人诠释mThumbnailHeight ;/ /加
   在方法中添加

[CPP]  鉴于普通副本

  1. 公共 无效 updateVoluesFromResources(){

  2. ........................................................

  3. mThumbnailHeight = Math.round(res.getDimension(R.dimen.status_bar_recents_thumbnail_height)); / /添加

  4. }

在方法中添加

[Java]中 查看纯副本

  1. 私人 无效 updateThumbnail(...){

  2. 否则 {

  3. 矩阵scaleMatrix =  新的 矩阵();

  4. 浮 规模= mThumbnailWidth /(浮动)thumbnail.getWidth();

  5. scaleMatrix.postScale(刻度,刻度); / / setScale

  6. h.thumbnailViewImage.setScaleType(ScaleType.MATRIX);

  7. h.thumbnailViewImage.setImageMatrix(scaleMatrix);

  8. / /添加

  9. 如果(Surface.getDefaultRotation()>  0 ){

  10. 矩阵rotateMatrix =  新的 矩阵();

  11. rotateMatrix.setRotate(Surface.getDefaultRotation(),mThumbnailWidth / 2 ,mThumbnailHeight / 2 );

  12. h.thumbnailViewImage.setImageMatrix(rotateMatrix);

  13. }

  14. / /添加结束

  15. }

5)。修改截屏图片方向
  在框架/底座/ pacikages / systemui / SRC / COM /机器人/ systemui / GlobalScreenshot.java文件中找到takeScreenshot方法
修改浮度= getDegreesForRotation(mDisplay.getRotation());

[Java]中 查看纯副本

  1. 整型 旋转= mDisplay.getRotation();

  2. 如果(Surface.getDefaultRotation()>  0 ){

  3. =旋转(旋转+ Surface.getDefaultRotationIndex())%4 ;

  4. }

  5. 浮 度= getDegreesForRotation(旋转);

确定这样就完成屏幕旋转180度

Android4.0强制横屏竖屏的更多相关文章

  1. Android之横屏竖屏显示问题

    1.採用不同的布局文件 在res下创建目录layout-land 在该目录下写入的layout(xml文件)横屏的时候系统自己主动选择显示的layout 同理: 在res下创建目录layout-por ...

  2. RK3288 6.0 双屏异显,横屏+竖屏【转】

    本文转载自:http://blog.csdn.net/clx44551/article/details/78215730?locationNum=8&fps=1 RK3288 6.0 双屏异显 ...

  3. HTML5中判断横屏竖屏

    在移动端中我们经常碰到横屏竖屏的问题,那么我们应该如何去判断或者针对横屏.竖屏来写不同的代码呢. 这里有两种方法: 一:CSS判断横屏竖屏 写在同一个CSS中 1 2 3 4 5 6 @media s ...

  4. javascript判断手机旋转横屏竖屏

    javascript判断手机旋转横屏竖屏 // 横屏竖屏函数 function orientationChange(){ switch(window.orientation) { case 0: // ...

  5. js 横屏 竖屏 相关代码 与知识点

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  6. Android横屏竖屏切换的问题

    Android横屏竖屏切换的问题 http://blog.sina.com.cn/s/blog_77c632410101790w.html

  7. 【转】Android 模拟器横屏竖屏切换设置

    http://blog.csdn.net/zanfeng/article/details/18355305# Android 模拟器横屏竖屏切换设置时间:2012-07-04   来源:设计与开发   ...

  8. vue手机端横屏竖屏切换

    1.建一个空白的vue文件,添加上如下代码 data() { this.$router.go(-1) return {} }   2.在需要横屏竖屏切换的页面中加入如下代码: beforeMount( ...

  9. Python--将文件夹中图片按照横屏竖屏进行分类

    搬运链接:https://www.jianshu.com/p/c8be54282e77 """ 可以遍历输入的路径的指定后缀的文件,主要是用来筛选图片,将图片分成 横屏, ...

随机推荐

  1. Altium Designer 09 (Protel)总线使用方法(解决导入PCB无网络标号问题)

    弄了两天的Protel总线问题终于解决了,一开始顶层总线连接好后,导入PCB没有网络标号,也就是两个子图信号没连上.现在将正确的连接和设置方法公布如下: 1.首先画好子图的总线,如下图所示.注意:中括 ...

  2. El表达式和fn函数一起使用

     如下: ${a%1>0?a:(fn:substringBefore(a, "."))} 

  3. JQ无法修改input的type属性的替代解决方法

    需要实现的效果:一个输入框,当输入框未获得焦点的时候,显示为 “请输入密码”:当输入内容并失去焦点的时候,输入内容显示为”*****”,如果没有输入仍然显示“请输入密码”: 方法一:使用text,隐藏 ...

  4. Android输入法界面管理(打开/关闭/状态获取)

    最近做一个带发表情的聊天界面,需要管理系统输入法的状态, 一.打开输入法窗口: InputMethodManager inputMethodManager = (InputMethodManager) ...

  5. erlang mnesia 数据库查询

    Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南.下面的内容将着重说 ...

  6. SQL - 配置SQLServer 使其可以远程访问

    环境: SQL Server2008 R2 SQL Server Management Studio 今天测试部署项目的时候,发现不能远程访问SQL Server.具体情形就是在Management ...

  7. 多次绑定click及ajax提交常用方法

    <script> $(document).ready(function() { //绑定click $(".exchange_ecv").bind("clic ...

  8. Hadoop基本概念

    一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Dist ...

  9. Android设置里面默认存储器选项(default write disk)的实现

    原生的Android设置里面没有默认存储器的选项,可是MTK偏偏加上了这个功能,可能MTK认为这个比較实用吧,所以,他们在原生的基础上面做了改动.加上了这个功能.可是高通平台没有这个功能.相对MTK来 ...

  10. C++ Win32控制台应用程序捕捉关闭事件

      #include#includebool ctrlhandler( DWORD fdwctrltype ){    switch( fdwctrltype )    {    // handle ...