【大屏 折叠屏适配】 折叠后,activity左右黑边问题

本文介绍了如何在Android应用中适配折叠屏,包括设置`resizeableActivity`、理解分屏模式和兼容模式、以及如何监听屏幕尺寸变化以保持应用状态。重点讲解了`maxAspectRatio`的调整方法和防止Activity因屏幕变化重启的技巧。
摘要由CSDN通过智能技术生成

要适配折叠屏,首先是要让应用支持动态改变尺寸,我们需要在 manifest 中的 Application 或对应的 Activity 下声明:

android:resizeableActivity="true" 

相反,如果暂时不打算适配,把这个参数设为 false 就好了。需要说明的是,这个参数在 Android 7.0 或更高版本默认为 true,以下则默认为 false。

下面介绍两个和这个参数相关的概念。

/ 分屏模式 /

之所以从 Android 7.0 开始,把 resizeableActivity 默认改为 true,是因为在 7.0 里增加了一个新功能,叫分屏模式。
在这里插入图片描述

如果把 resizeableActivity 设为 false,就意味着应用是不支持分屏模式的,它决定了应用是否有分屏的设置项。
在这里插入图片描述

/ 兼容模式 /

当 resizeableActivity 取 false 时,展开折叠屏可能会变成这样的效果:
在这里插入图片描述

这个效果类似于在 iPad 上使用不兼容的 iPhone 应用,这个四周用黑色填充的模式,叫兼容模式。

兼容模式的显示和最大支持比例 maxAspectRatio 有关,当屏幕比例超过 maxAspectRatio 时才会用黑边填充,官方建议把 maxAspectRatio 设为 2.4 (12 : 5),修改 maxAspectRatio 的方法如下:

Android 8.0 或以上版本

在 标签中配置 android:maxAspectRatio:


复制
Android 8.0 以下版本

在 标签中添加名为 android.max_aspect 的 meta-data:

复制 如果 resizeableActivity 设为 true,就不需要设置 maxAspectRatio 了,设了也不会生效。

/ 监听尺寸改变 /

在默认情况下,当屏幕发生了变化,系统会销毁并重新创建整个 Activity。但我们希望屏幕变化之后,程序能够以切换前的状态继续运行,不需要重启页面。

我们可以给 Activity 添加配置:

android:configChanges=“screenSize|smallestScreenSize|screenLayout”
复制
这样配置后,当屏幕发生变化就不会重启 Activity 了,会调用到 onConfigurationChanged 方法,我们可以在这个方法里获取到当前的屏幕信息:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(“config”, “newConfig.screenHeightDp:” + newConfig.screenHeightDp
+ “, newConfig.screenWidthDp” + newConfig.screenWidthDp);
}

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值