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("屏幕方向","竖屏");
        }
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。