android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
第一个是屏幕方向横屏,第二个是避免横屏activity被重新创建(onCreate会执行两次)
还有一种办法就是代码切换横屏
activity的方法setRequestedOrientation(ActivityInfoSCREEN_ORIENTATION_LANDSCAPE);
用这个软件,你的手机屏幕方向完全由你说了算
终极旋屏控制
Ultimate Rotation Control(汉化版)
应用简介
友情提示:本作品为汉化版,安装时请先卸载原版再安装此汉化版。Ultimate Rotation Control(终极旋屏控制)堪称Android系统上最强悍的旋屏控制神器,它能够让你给您自由控制设备的屏幕旋转方式,支持自动、强行自动、锁定、竖屏、横屏、反向竖屏、反向横屏、自动竖屏、自动横屏、手动旋转方式,绝对是Android设备上的必装应用!
主要功能:
- 真正的屏幕方向锁定
- 强行自动旋转
- 单独为每个应用程序设置屏幕旋转方式
- 两类窗口小部件和状态栏通知,带有快捷方式按钮,可以轻松更改您的屏幕旋转方式设置
- 支持创建指定屏幕旋转方式的快捷方式
- Android 4x/Holo风格用户界面,简洁美观
- 支持通过Taker/Locale集成来自动设置屏幕方向支持的模式:
- 自动:普通的自动旋转屏幕方式,不会覆盖应用程序设置
- 强行自动:强行自动旋转屏幕方式,但会覆盖应用程序设置
- 锁定:真正的将屏幕锁定为当前的方向
- 竖屏:真正的锁定屏幕为竖屏方向
- 横屏:真正的锁定屏幕为横屏方向
- 反向竖屏:真正的锁定屏幕为反向竖屏方向
- 反向横屏:真正的锁定屏幕为反向横屏方向
- 自动竖屏:自动在竖屏和反向竖屏之间选择
- 自动横屏:自动在横屏和反向横屏之间选择
- 手动:普通的手动模式,不会覆盖应用程序设置
软件下载地址;>如果你的手机支持重力感应,那么可以把手机里的自动转屏打开,然后再横置手机,手机便横屏了当然了,你再次竖置手机的时候,手机又回到竖屏了
如果手机不支持重力感应,那么也就没有这个选项,通常这个自动转屏选项在下拉菜单里面会有,没有的话就在设置里的显示里面找如果还没有就有两种可能,一种是手机厂商美化时将这个设置放在了别的地方(要自己去找),还有就是手机根本就不支持横屏(虽说有重力感应模块)
一布局问题
二重新载入问题
1布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifestxml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:
"unspecified":默认值 由系统来判断显示方向判定的策略是和设备相关的,所以不同的设备会有不同的显示方向
"landscape":横屏显示(宽比高要长)
"portrait":竖屏显示(高比宽要长)
"user":用户当前首选的方向
"behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
"sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
"nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。
也可以在Java代码中通过setRequestedOrientation(ActivityInfoSCREEN_ORIENTATION_LANDSCAPE)来设置。
如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下方法来切换布局:
1)在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如mainxml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,模拟器会自动寻找。
2)通过 thisgetResources()getConfiguration()orientation来判断当前是横屏还是竖屏然后来加载相应的 xml布局文件。因为当屏幕变为横屏的时候,系统会重新呼叫当前Activity的onCreate方法,你可以把以下方法放在你的onCreate中来检查当前的方向,然后可以让你的setContentView来载入不同的layout xml
1 if (thisgetResources()getConfiguration()orientation == ConfigurationORIENTATION_LANDSCAPE){
2 Logi("info","landscape"); // 横屏
3 }
4 else if(thisgetResources()getConfiguration()orientation ==ConfigurationORIENTATION_PORTRAIT) {
5 Logi("info","portrait"); // 竖屏
6 }
在onConfigurationChanged()方法中也可以检测拥有硬键盘的键盘状态
1 //检测实体键盘的状态:推出或者合上
2 if (newConfighardKeyboardHidden ==ConfigurationHARDKEYBOARDHIDDEN_NO){
3 //实体键盘处于推出状态,在此处添加额外的处理代码
4 }
5 else if(newConfighardKeyboardHidden ==ConfigurationHARDKEYBOARDHIDDEN_YES){
6 //实体键盘处于合上状态,在此处添加额外的处理代码
7 }
2重新载入问题。如果不需要从新载入,可以在AndroidManifestxml中加入配置 android:configChanges="orientation|keyboardHidden",配置 android:configChanges的作用就是如文档所说的:Specify one or more configuration changesthat the activity will handle itself If not specified, the activity will berestarted if any of these configuration changes happen in the system。这样在程序中Activity就不会重复的调用onCreate()甚至不会调用onPause、onResume只会调用一个 onConfigurationChanged(Configuration newConfig)。如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的 *** 作内容或数据,则需要保存之前的数据。然后在 activity的onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用 onCreate()方法。
如果要彻底禁止翻转,可以设置android:screenOrientation的属性为nosensor,如此就可以忽略重力感应带来的麻烦了。不过在模拟器上不管用,在真机上是正确的。android:screenOrientation="portrait"
则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。
android:screenOrientation="landscape",为横屏显示。
这里提一个小知识,Android模拟器中,快捷键"Ctrl+F11/F12"可以实现转屏
从屏幕顶部状态栏下滑出通知面板,继续向下滑出整个菜单。点击自动旋转开启屏幕旋转功能。
开启后,平板会通过姿态感应器检测人脸方向,并结合重力感应器,智能调整屏幕显示内容。
例如:
当您将平板平放在桌面使用时,保持人脸正对屏幕,转动平板可以切换横竖屏。
当您躺卧使用平板时,屏幕也不会因翻身而自动旋转。
温馨提醒:姿态感应器位于屏幕顶部。为确保感应器能高效识别人脸方向,使用时请正对屏幕。
嗨!
您好,有以下两个方法;
1,下拉通知栏-旋转。如果您找不到旋转按键,可能是您打乱了自定义开关的位置,您可以点击更多将旋转按钮调至前面。
2,设置-显示-自动旋转屏幕。或者在辅助功能里也有相应的选项。
另外,如果您想保持屏幕处于横屏状态,您可以在开启自动旋转情况下,将手机横屏放置,再关闭自动旋转,这样它就锁定横屏状态。如果有任何疑问可以来百度知道平台提问。祝您生活愉快。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)