关闭

Android 禁止屏幕旋转 & 屏幕旋转不刷新 Activity & 动态更改屏幕方向

标签: android横屏竖屏activity切换
595人阅读 评论(0) 收藏 举报
分类:

转自:http://gaebolg.blog.163.com/blog/static/19826906820134312050504/

余好读书,乐思善疑,有过目不忘之能,亦有掩卷即忘之病,故常撰文以记之……

 

一、禁止屏幕旋转:

 

打开工程中的 AndroidManifest.xml 文件,在 <activity> </activity> 中,添加一条属性信息:

android:screenOrientation="portrait"  (强制竖屏)

android:screenOrientation="landscape"  (强制横屏)

 

二、屏幕旋转不刷新 Activity:

 

当屏幕旋转时,会重新执行 Activity 中的 onCreate() 方法,即刷新了 Activity 的显示。若是不想刷新,可以用第一种方法锁屏,也可以用以下方法:

 

1、打开工程中的 AndroidManifest.xml 文件,在 <activity> </activity> 中,添加一条属性信息:

android:configChanges=”orientation|keyboardHidden”

注:这个属性指的是,当后边属性值代表的事件发生时,Activity 会执行某个函数,orientation 指的是当屏幕旋转时,keyboardHidden 指的是键盘辅助功能改变。“|”为或符号,指这两个中任意一个发生,就执行 Activity 某个函数。

注2:如果你的开发 API 等级等于或高于 13,你还需要设置 screenSize,因为 screenSize 会在屏幕旋转时改变。

 

2、在对应 Activity 中重写 onConfigurationChanged() 方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // 什么都不用写
    }
    else {
        // 什么都不用写
    }
}

注:如果在 if、else 中,使用了 setContentView(R.layout.xxxx) 函数,那么就可以实现:每次屏幕旋转时,调用不同的布局。

 

三、动态更改屏幕方向:

 

有些时候,我们不需要把程序写死,需要在程序中有需要的时候旋转屏幕,例如:在“设置”里添加一个 ListView 项,可通过点击选择横屏或竖屏。(比如:电子书软件)

假设有一个按钮,我们仅重写 OnClick() 函数:

@Override
public void onClick(View v) {

    // 如果是竖排,则改为横排
    if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

    // 如果是横排,则改为竖排
    else if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

}

重点就是:getRequestedOrientation() 函数、setRequestedOrientation() 函数的使用。

注意:使用这种方法,必须事先在 AndroidManifest.xml 的 <activity> </activity> 中,添加android:screenOrientation 属性值,不然 getRequestedOrientation() 可能会出问题。

 

参考文档 1:http://weizhulin.blog.51cto.com/1556324/311469

参考文档 2:http://www.cnblogs.com/reaver21/archive/2012/03/20/2407711.html

0
0
查看评论

Unity 手机游戏屏幕翻转问题

Unity 手机游戏屏幕翻转问题
  • ZFSR05255134
  • ZFSR05255134
  • 2016-11-12 17:55
  • 1729

android 防止旋转时销毁重建activity

在android的开发中,时常会需要对屏幕进行旋转,或者用户在使用的时候会对屏幕进行旋转。而android设备的屏幕在旋转的时候会使得当前的activity执行stop操作,而后销毁当前的activity,然后在旋转之后重新进行activity的创建。这种过程会导致我们的一些初始化操作重复进行,无形...
  • helinlin007
  • helinlin007
  • 2015-10-23 11:15
  • 2112

安卓屏幕旋转时,禁止Activity重新加载

安卓设备旋转屏幕时,Activity默认会重新加载,如果是要读取大量数据的场景,那
  • zhouyingge1104
  • zhouyingge1104
  • 2014-10-29 14:21
  • 5802

android 屏幕旋转重置界面问题 局部刷新界面问题

背景:在项目MainActivity中有许多小块加载着不同的数据,收到通知进行更新通知要求更新的那一小块控件 问题:在屏幕横竖屏切换后 以及 某处界面切回MainActivity后,再收到通知更新控件时不起作用 代码: MainActivity也实例化了 if( AppContext.getInst...
  • qq_26075861
  • qq_26075861
  • 2017-12-23 11:41
  • 313

iOS中关闭屏幕旋转功能时如何判断屏幕方向

首先讲强制横屏和竖屏,其实很少App需要强制转屏的,一般在视频播放,相机这类需要旋转屏幕 (1)这段代码是直接横屏 (interfaceOrientation 这个枚举有各种情况) // 视图显示为横屏状态 - (BOOL)shouldAutorotateToInterfaceOrienta...
  • u012121216
  • u012121216
  • 2015-11-10 14:17
  • 1065

Android 禁止屏幕旋转 &amp; 屏幕旋转不刷新 Activity &amp; 动态更改屏幕方向

转自:http://gaebolg.blog.163.com/blog/static/19826906820134312050504/ 余好读书,乐思善疑,有过目不忘之能,亦有掩卷即忘之病,故常撰文以记之……   一、禁止屏幕旋转:   打开工程中的 AndroidMa...
  • buxin_2008
  • buxin_2008
  • 2017-09-05 17:43
  • 180

Android:屏幕旋转时,禁止Activity重新加载

在AndroidManifest.xml中修改设置:Android:configChanges="orientation|screenSize"可控制屏幕旋转时,不会重新加载Activity
  • doris_d
  • doris_d
  • 2016-05-13 15:03
  • 958

屏幕旋转时防Activity重新加载

在AndroidManifest.xml中,增加一项设置即可,如下: android:name=".xxxxxxActivity"  android:configChanges="orientation|screenSize">
  • benbenxiongyuan
  • benbenxiongyuan
  • 2016-07-06 15:05
  • 380

Android4.4系统增加LCD 屏幕旋转功能

转载自 http://blog.csdn.net/wlwl0071986/article/details/51225087  我以前修改是太后面了,导致开机logo 会部分不旋转,试试这个文章,感觉修改地方比较合理,试试看,感谢原作者。 由于Android4.4...
  • lqxandroid2012
  • lqxandroid2012
  • 2017-03-07 10:56
  • 676

android禁止屏幕旋转、oncreate不会重新被调用等问题

1.禁止屏幕旋转: 1.在应用中固定屏幕方向。      在AndroidManifest.xml的activity中加入:         ...
  • dfgdsgfdg
  • dfgdsgfdg
  • 2016-05-25 09:26
  • 132
    个人资料
    • 访问:40065次
    • 积分:356
    • 等级:
    • 排名:千里之外
    • 原创:70篇
    • 转载:20篇
    • 译文:0篇
    • 评论:0条