当前位置:   article > 正文

自动旋转时,AndroidAutoSize的自适应问题(横竖屏不同布局)_autosizeconfig

autosizeconfig

问题

开发中的应用的横竖屏可以自动切换,并且拥有不同布局。横向布局是按照平板设计的,纵向布局是按照手机设计的。为了自动适配,使用了AndroidAutoSize

AndroidAutoSize需要配置设计宽度和设计高度,但是UI设计的横屏和竖屏的宽度和高度刚好是相反的。导致配置完成之后,一旦旋转屏幕,竖屏或者横屏的适配就不正常(只能对横屏或者只能对竖屏进行适配)。

解决办法

初始化AndroidAutoSize时,进行如下配置:

//屏幕适配监听器
AutoSizeConfig.getInstance().setOnAdaptListener(new onAdaptListener() {
     @Override
     public void onAdaptBefore(Object target, Activity activity) {
         //使用以下代码, 可以解决横竖屏切换时的屏幕适配问题
         //首先设置最新的屏幕尺寸,ScreenUtils.getScreenSize(activity) 的参数一定要不要传 Application !!!
         AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
         AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1]);
         //根据屏幕方向,设置设计尺寸
         if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
         	 //设置横屏设计尺寸
             AutoSizeConfig.getInstance()
                     .setDesignWidthInDp(640)
                     .setDesignHeightInDp(360);
         } else {
         	 //设置竖屏设计尺寸
             AutoSizeConfig.getInstance()
                     .setDesignWidthInDp(360)
                     .setDesignHeightInDp(640);
         }
         //AutoSizeLog.d(String.format(Locale.ENGLISH, "%s onAdaptBefore!", target.getClass().getName()));
     }

     @Override
     public void onAdaptAfter(Object target, Activity activity) {
         //AutoSizeLog.d(String.format(Locale.ENGLISH, "%s onAdaptAfter!", target.getClass().getName()));
     }
 });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/332397
推荐阅读
相关标签
  

闽ICP备14008679号