android学习笔记5:屏幕旋转

来源:互联网 发布:电脑怎么升级windows 编辑:程序博客网 时间:2024/05/19 13:08

1. 禁止屏幕旋转并横屏:

                   <activity android:name=".ClickReadActivity"
                            android:configChanges="orientation|keyboardHidden"
                            android:screenOrientation="landscape">
                   </activity>

2. 在 android 中若要通过程序改变屏幕显示的方向,必须覆盖 setRequestedOrientation() 方法,若要获得屏幕显示的方向,则需要调用 getRequestedOrientation() 方法。

         首先需要在 AndroidManifest.xml 中配置 Android:screenOrientation 属性。 ( 通过 getRequestedOrientation() 的值是否为 -1 可以判断是不是添加了该配置 )

                   <activity android:name=".ClickReadActivity"
                            android:screenOrientation="landscape">
                   </activity>

         然后重写方法:

                   public void setRequestedOrientation(int requestedOrientation){

                            switch(requestedOrientation){

                                     case ( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ):// 横屏

                                               break;

                                     case ( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ):// 竖屏

                                               break;

                            }

                            super.setRequestedOrientation(requestedOrientation);

                   }

                   public int getRequestedOrientation(){// 重写此方法可以获得目前屏幕方向

                            return super.getRequestedOrientation();

                   }

         然后调用 setRequestedOrientation(int requestedOrientation) 方法,可实现改变屏幕方向。

3. 屏幕方向改变时,会调用 onConfigurationChanged() 方法。 (onConfigurationChanged() 方法是当系统发生系统设置改变之后所触发的事件,可捕捉屏幕设置更改事件、隐藏或打开键盘等 ) 。因此,要在屏幕方向改变后做界面的重绘等操作,可以重写 onConfigurationChanged() 方法。

         首先需要在 AndroidManifest.xml 中设置 Android:screenOrientation 属性,并设置权限:

                   <activity android:name=".ClickReadActivity"
                            android:screenOrientation="landscape">
                   </activity>

         <uses-permission android:name="android.permisson.CHANGE_CONFIGURATION"/>

         然后重写方法:

         public void onConfigurationChanged(Configuration newConfig){

                   if( newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ){

                   }

                   if( newConfig.orientation==Configuration.ORIENTATION_PORTRAIT ){

                   }

                   if( newConfig.KeyboardHidden==Configuration.KEYBOARDHIDDEN_NO ){

                   }

         }


原创粉丝点击