Android中关于横竖屏问题
一、屏幕的方向可以在AndroidManifest.xml文件中通过设置screenOrientation属性来实现, screenOrientation用来指定Activity的在设备上显示的方向,每个值代表如下含义:
"unspecified" |
默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向. |
"landscape" |
横屏显示(宽比高要长) |
"portrait" |
竖屏显示(高比宽要长) |
"user" |
用户当前首选的方向 |
"behind" |
和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) |
"sensor" |
有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。 |
"nosensor" |
忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。 |
二、旋转屏幕调用onCreate()方法:
解决办法:
在AndroidManifest.xml文件中对activity指定android:configChanges="keyboardHidden|orientation|screenSize"属性,转屏的时候就会不再重新调用OnCreate()函数,而是调用onConfigurationChanged()。
注:如果开发API等级等于或高于13,screenSize必须设置,因为screenSize会在屏幕旋转时改变
三、监听屏幕旋转事件,针对屏幕方向做一些操作:
重写onConfigurationChanged(Configuration newConfig)方法
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){ //横屏时需要做的处理 Log.i("屏幕方向","横屏"); }else{ //竖屏时需要做的处理 Log.i("屏幕方向","竖屏"); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。