展开之后, 屏幕变大。 https://www.jb51.net/article/165481.htm
折叠屏适配
折叠屏之所以需要适配,是因为我们的应用有可能在运行的过程中,所在的屏幕尺寸发生了变化,这种情况对现有项目多少都会产生一些问题。
所以折叠屏适配的本质是: 当应用运行时,屏幕的尺寸、密度或比例发生了变化,应用能够继续在变化后的屏幕上正常显示和正常运行。
其实这种情况并不是折叠屏出现之后才有的,应用的纵向横向切换也会发生同样的情况,只不过很多应用都强制纵向,不需要处理这种适配了。
允许改变应用尺寸
要适配折叠屏,首先是要让应用支持动态改变尺寸,我们需要在 menifest 中的 Application 或对应的 Activity 下声明:
1
相反,如果暂时不打算适配,把这个参数设为 false 就好了。
需要说明的是,这个参数在 Android 7.0 或更高版本默认为 true,以下则默认为 false。
下面介绍两个和这个参数相关的概念。
兼容模式
当 resizeableActivity 取 false 时,展开折叠屏可能会变成这样的效果:
.jpg
这个效果类似于在 iPad 上使用不兼容的 iPhone 应用,这个四周用黑色填充的模式,叫兼容模式。
兼容模式的显示和最大支持比例 maxAspectRatio 有关,当屏幕比例超过 maxAspectRatio 时才会用黑边填充,官方建议把 maxAspectRatio 设为 2.4 (12 : 5),修改 maxAspectRatio 的方法如下:
Android 8.0 或以上版本
在 标签中配置 android:maxAspectRatio:
1
2
Android 8.0 以下版本
在 标签中添加名为 android.max_aspect 的 meta-data:
1
如果 resizeableActivity 设为 true,就不需要设置 maxAspectRatio 了,设了也不会生效。
监听尺寸改变
在默认情况下,当屏幕发生了变化,系统会销毁并重新创建整个 Activity。但我们希望屏幕变化之后,程序能够以切换前的状态继续运行,不需要重启页面。
我们可以给 Activity 添加配置:
1
这样配置后,当屏幕发生变化就不会重启 Activity 了,会调用到 onConfigurationChanged 方法,我们可以在这个方法里获取到当前的屏幕信息:
1
2
3
4
5
6
调试
最好的调试工具当然就是用真机了,但目前只有少部分人有这个条件,下面是真机以外的两个调试方案。
Android Studio
在 Android Studio 3.5 里增加了折叠屏设备的虚拟机,我们可以创建一个来调试:
通过点击模拟器上的按钮,我们可以切换虚拟机的折叠和展开状态:
结束
关于折叠屏的适配,就介绍这么多。总的来说,如果要适配折叠屏,第一步是把 resizeableActivity 设为 true,然后给 Activity 配置 configChanges,并进行测试。最后可以更近一步,给大屏幕设计另一套 UI,在折叠屏切换时切换 UI。
下面是一些相关的参考资料:
Google - 打造适用于可折叠设备的应用
华为折叠屏应用开发指导
三星折叠屏应用开发指导
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。