1. 两种方式强制设置横屏或竖屏

第一种,通过修改Activity的onResume()方法

@Override
protected void onResume() {/*** 设置为横屏*/if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}super.onResume();
}

第二种,在工程的AndroidManifest.xml文件中,对Activity节点添加

android:screenOrientation="portrait"  <!--竖屏-->
android:screenOrientation="landscape" <!--横屏-->

2. 屏幕旋转

不加任何旋转屏幕的处理代码的时候,屏幕旋转时将会导致系统把当前的activity销毁,重新打开。

如果只是简单的界面调整,我们可以阻止此问题的发生,屏幕旋转而自己调整屏幕的元素重构。

首先我们需要修改AndroidManifest.xml文件

<activity android:name="com.charein.dingdang.MainActivity" >
</activity><!--修改为:-->
<activity android:name="com.charein.dingdang.MainActivity" android:configChanges="orientation|keyboard">
</activity>

然后重写onConfigurationChanged方法

@Override
public void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);Log.v(" == onConfigurationChanged");processLayout();
}

当碰到activity在切换到后台或布局从横屏切换到竖屏,会销毁该activity并重新打开。

为了避免这种情况,我们可以在AndroidManifest.xml中的activity元素加入这个属性

android:configChanges="orientation|keyboardHidden"就能有效避免onCreate方法的重复加载,

同时在Activity的java文件中重载onConfigurationChaned(Configuration newConfig)这个方法。

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {}else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {}}

关于Activity的横竖屏切换问题,可以通过AndroidManifest.xml文件中的Activity来配置:

android:screenOrientation=["unspecified" | "user" | "behind" |          "landscape" | "portrait" |           "sensor" | "nonsensor"]

screenOrientation 用来指定Activity的在设备上显示的方向,每个值代表如下含义:

"unspecified" 默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
"landscape" 横屏显示(宽比高要长)
"portrait" 竖屏显示(高比宽要长)
 
"user" 用户当前首选的方向
"behind" 和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
"sensor" 有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
"nosensor" 忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。

Android屏幕旋转设置相关推荐

  1. Android屏幕旋转时Activity不重新调用onCreate的方法

    2019独角兽企业重金招聘Python工程师标准>>> android屏幕旋转时Activity不重新调用onCreate的方法 当手机转屏时,Activity的onDestroy和 ...

  2. 关于屏幕旋转设置:iOS5、iOS6及iOS7

    关于屏幕旋转设置: iOS5调用 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOri ...

  3. Android 屏幕旋转时Activity的变化

    Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何"设置"(Configuration)的改变都可能对Activity的 ...

  4. 通过广播获取Android屏幕旋转事件

         Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能 ...

  5. android 屏幕旋转流程,android自动屏幕旋转流程分析.doc

    android自动屏幕旋转流程分析.doc android自动屏幕旋转流程分析 在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox, 如 ...

  6. android 屏幕方向监听,android 屏幕旋转问题 - jwzhangjie的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    settings设置 在Android的Settings-> Display中有Orientation这一设置项.当选中时,屏幕会随设备旋转. settings设置是在文件SoundAndDis ...

  7. Android 屏幕旋转 全解析

    屏幕旋转一般的解决方案 关于屏幕旋转这里,之前一直没太注意,因为根据设备会有指定的屏幕旋转策略如: 开发手机应用时一直使用强制竖屏布局 开发平板设备一直使用横屏布局 开发系统应用,一般给两套即横竖各一 ...

  8. Android屏幕旋转,赶紧学习一下

    ActivityInfo.SCREEN_ORIENTATION_SENSOR //根据传感器设置方向 ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR //根据传 ...

  9. android 屏幕旋转

    基本思路:在输入事件分发线程中(代码在WindowManagerService.java中),当事件为按键事件而且按键码与自定义功能键的码值一样时,向一个特定的Service(如com.android ...

最新文章

  1. WebView + jQuery
  2. 查看MS SQL Server数据库每个表占用的空间大小
  3. 修改MySQL数据文件默认路径
  4. 低情商大神的思维,高情商的你会懂么?为什么很多计算机老师都是坏脾气?为什么提问没人回答?为什么要通过网络自主学习?
  5. 基于Node.js实现压缩和解压缩的方法
  6. 最新房天下登录接口(RSA)JS逆向分析
  7. 第六章 ---- 面向对象(三)
  8. 剑指Offer之求解1+2+....+n
  9. 亚马逊遭遇15万人联名抗议:AI刷脸可以,但卖给政府不OK
  10. 【51单片机】STC-ISP软件保姆级烧录教程(以普中A2开发板为例)
  11. webstorm的 快捷键(Keymap)
  12. 宠物动物有什么计算机专业岗位,宠物医院前台岗位职责
  13. SRCNN:Image Super-Resolution Using Deep Convolutional Networks
  14. 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 有序
  15. 谈微软 KMS 激活
  16. 教你解决“邮件”应用不断提示输入密码的方法!
  17. word里添加加行号可编辑的代码方式,超级方便简单
  18. 资源警告!有人收罗了40个中文NLP词库,放到了GitHub上
  19. 微信hook——登录界面的账号密码
  20. Spring Boot集成海康威视NVR

热门文章

  1. double类型精度丢失问题以及解决方法
  2. 我是最闪亮的单身贵族!
  3. 不能使用鼠标在vi中实现粘贴功能
  4. 树莓派(五) 树莓派和windows的文件传输方法
  5. When Transfer Learning Meets Cross-City Urban Flow Prediction: Spatio-Temporal Adaptation Matters
  6. 低压400瓦同步电机驱动器方案低压400瓦驱动器方案,带霍尔传感器,恒转速,pi调节
  7. 全局事务服务 GTS 与 Seata 融合的开始
  8. 斜率优化详解(超详细, 有图有代码有注释)
  9. 《炬丰科技-半导体工艺》硅晶片清洗是半导体制造中的一个基础步骤
  10. 日志管理:如何通过日志实现日志日志可治理