赞
踩
开发中的应用的横竖屏可以自动切换,并且拥有不同布局。横向布局是按照平板设计的,纵向布局是按照手机设计的。为了自动适配,使用了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())); } });
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。