26
2017
09

Android横竖屏切换的相关知识

Android横竖屏切换

  1. 固定屏幕方向

    在AndroidManifest.xml的activity中加入:
       android:screenOrientation=”landscape”
     属性即可(landscape是横向,portrait是纵向)。
    
  2. 由于一般的横竖屏切换都会重新创建该Activity,不想重新创建的话

    1. 在Activity属性中加入:android:configChanges=”orientation|keyboardHidden”

      • android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。
      • orientation,屏幕界面旋转(可能是用户手动旋转的),【注意:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变】
      • keyboardHidden,键盘辅助功能改变
    2. 在相对应的Activity中继承重写onConfigurationChanged方法,这个方法将会在我们的应用发生变化时,让我们能随心所谓地进行监听处理。

    public void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
                if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) {
               // Nothing need to be done here
                } else {
                   // Nothing need to be done here
                }
            }
  1. 如果屏幕旋转后发生了销毁-重建这个过程,又需要保存一些数据重新使用的话,可以重写onSaveInstanceState(Bundle outState)方法,该方法会在Activity被destroy前调用,在onCreate中,判断savedInstanceState不为空即可从中获取保存的数据,或重写onRestoreInstanceState(Bundle savedInstanceState)方法

  2. 设置横竖屏代码方法

    • 设置Activity横屏显示setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    • 设置Activity竖屏显示setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
上一篇:java之program arguments与VM arguments 下一篇:Android-仿今日头条评论