您的位置:首页 > 移动开发 > Android开发

Android手机横竖屏切换小结

2016-08-25 10:27 281 查看
本篇是关于Android横竖屏切换的小结。

一、横竖屏幕固定设置:

很多游戏是固定横屏的模式。而在Android中是可以在清单配置文件设置的:

<!--在activity的属性screenOrientation中设置,常用的有portrait(竖屏)、landscape(横屏)等-->
<activity android:name=".MainActivity"
android:screenOrientation="landscape">
...
</activity>


另外,还可使用动态添加的方式设置:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


二、横竖屏可切换:

一般来说,横竖屏允许切换的情况比较多见,并且横竖屏切换要使用不同的布局文件。这样才能达到合理的显示效果。

1.方法一:编写两个布局(比如命名为layout_main_landscape.xml、layout_main_portrait.xml)

在onCreate方法中使用:

int orientation = getResource().getConfiguration().orentation();
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.layout_main_portrait);
} else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.layout_main_landscape);
}


此种方法是在Activity的基本生命周期中操作:在屏幕切换时,生命周期方法的执行顺序是:



2.方法二:在onConfigurationChanged方法中,设置切换操作。

步骤一: 在Android 清单配置文件中设置:

<!--在要调用onConfigurationChanged方法的Activity标签中设置-->
<activity android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize">
...
</activity>


步骤二:在MainActivity(注意我用的是MainActivity,不同的自行调整)中重写onConfigurationChanged方法。

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// TODO 执行在横屏中的操作
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
// TODO 执行在竖屏中的操作
}
}


相关参考连接:http://blog.csdn.net/junhuahouse/article/details/38109125
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android