Android横竖屏处理的三种方式

      Android 手机应用运行的时候,一般用户都是竖屏,突然将手机横屏的时候,那么程序会出现异常,因为在Android中每次屏幕切换都会,重启当前的Activiy,这种情况下,异常的处理方式有三种:

     1.锁定横竖屏

             在AndroidManifest.xml文件中,对Activity定义屏幕方向属性只能为横屏或竖屏。

             将屏幕固定为横屏:

            <activity android:screenOrientation="portrait">

             将屏幕固定为竖屏:

            <activity android:screenOrientation="landscape">


          因为一个Android应用中会有多个Activity,那么可以根据需要去配置每个activity的显示方式,如果不设置,默认可以横竖屏切换,或在源代码中横竖屏。

          设置竖屏:

          SetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);          

          设置横屏:

          SetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

   2.源代码中处理横竖屏事件

         在AndroidManifest.xml文件中对Activity注册android:configChanges属性,然后在对应的Activity源代码中重写onConfigurationChanged()函数即可     

         @Override
         public void onConfigurationChanged(Configuration newConfig){
              super.onConfigurationChanged(newConfig);
              if(this.getResources().getConfiguration().oritention==Configuration.ORITENTION.LANDSCAPE){
                  Log.e("Himi","当前屏幕切换成横屏显示模示");
              } else if (this.getResources().getConfiguration().oritention==Configuration.ORITENTION.PORTRAIT){
                  Log.e("Himi","当前屏幕切换成竖屏显示模示");
              } 
        }
       使用此方式在切换横竖屏的时候,Android就不会重启当前Activity了。

   3. 重写onSaveInstanceState()  与 onRestoreInstanceState()函数       

      @Override
      public void onSaveInstanceState(Bundle outState){
        super.onSaveInstanceState(outState);
        Log.e("Himi","ONSAVE");
      }
      @Override
      public void onRestoreInstanceState(Bundle outState){
        super.onRestoreInstanceState(outState);
        Log.e("Himi","RESTORE");
      }

        在屏幕进行横竖屏切换的时候,会响应onSaveInstanceState()函数,然后重启进入当前Activity,最后再执行onRestoreInstanceState函数,通过切换这两个函数进行屏幕横竖屏的处理。

如觉得文章不错,可扫描以下二维码打赏,以激励上传更好的开源代码:

         

          


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值