折叠屏适配理解下

作者 : 开心源码 本文共1765个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共156人阅读

相信大家这两天已经被三星和华为的折叠屏手机给刷爆朋友圈了。

三星Galaxy Fold?售价1980美元,约合人民币13376元

HUAWEI Mate X??售价2299欧元,相当于人民币1.75万元

朋友圈发关于折叠屏的消息主要分这两种。

普通人:哇!折叠屏,屏幕变大了,看电影打游戏一定更爽了,不过这玩意一定不抗摔吧,换个屏得多少钱!

程序员:卧槽!异形屏还没适配完呢,这尼玛还得适配!

别担心,小编今天就带你来详细剖析一下折叠屏!

?如何适配折叠屏?

折叠屏在视觉效果来说就是,屏幕变大了,手机变平板了。这样就要求我们的APP在可折叠设施开展时,当前应用页面必需无缝延续到另一个屏幕,并可自动调整大小匹配新的布局,反之亦然。也就是说,应用程序需要准备好在多个屏幕(不同分辨率、密度等)之间切换。

其实Google之前有其应对的策略,在去年的 Android Dev Summit 上,Google 就已经宣布将要对折叠屏提供“Screen Continuity(屏幕连续性)”的原生系统支持,并将这项技术称之为:Foldables。利用这种柔性显示技术,App 可以做到折叠屏设施上的适配工作。

下面我们来看如何实现这种技术:

运行时配置变更 – 系统默认

折叠/开展的操作过程将触发系统向应用发送新布局的配置更改,包括smallestScreenSize, screenSize 和 screenLayout 的配置

每当发生配置更改时,Android 默认情况下会重启正在运行的 Activity(先后调用onDestroy()和 onCreate())。目的是使用与新设施匹配的备用资源自动重新加载您的应用。

当 Activity 重启时,恢复之前的状态很重要。在销毁 Activity 之前,可以调用onSaveInstanceState()来保存应用状态的数据;之后在 onCreate()或者onRestoreInstanceState()中恢复 Activity 状态。

不要在活动的 OnDestroy()中调用 finish()或者自行终止进程,否则将导致 APP 在设施折叠或者开展时关闭。

运行时配置变更 – 自行解决

假如因性能限制等因素希望在不自动重启 Activity 的情况下解决配置更改,您需要在应用清单 manifest 中添加 android:configChanges 属性,并至少包含以下配置值:

当指定的属性(可折叠设施的折叠/开展时触发)发生变化时,MyActivity 不会重启 , 而是会收到对 onConfigurationChanged()的调用,在此方法中解决配置变更,升级视图布局、重新加载资源。通过此方法即能实现在系统不重启 Activity 的情况下重置 UI。

总的来说,折叠屏的适配有点相似平板+旋转屏的综合体,也需要配置文件+多布局。

?如何模拟折叠屏?

上面我们已经讲了如何适配折叠屏,这时候一定有同学要说了:适配毛线啊,一个手机1W7,小公司会给配测试机?自己买得起?所以还是不要适配了!

作为一个有梦想的开发者,能被这点困难打到吗?

买不起我们还没发用虚拟机么,接下来码仔带大家一步一步实现折叠屏虚拟机的创立。

1、进入 Android Studio-> AVD Manager(Android Studio 可在 Google 网下载地址:https://developer.android.google.cn/studio/install?)

2、创立虚拟机

3、选择设施 : 平板电脑> Nexus 10

4、选择系统镜像 :?可选择 Android9.0 开源项目镜像(可下载)

或者者选择 Android 9.0 Google 镜像(可下载)

5、配置方法 : 选择 Portrait,其余使用默认值

6、运行AVD

7、下载折叠屏模拟器 : FoldableEmulator_1.01.apk ,可进入下面的网页进行下载 :?https://developer.samsung.com/galaxy/foldable/test

8、安装折叠屏模拟器APK

9、授予权限

“SYSTEM_ALERT_WINDOW”权限也可以在 activity 中授予,在应用程序启动时显示,无需使用上述命令授予。

10、仿真使用

折叠屏的适配和模拟器的使用详情给大家了,大家还不赶紧去搞一波?

想要更多屏幕适配教学资料与视频可以进群:4112676,验证:屏幕适配资料? 就可

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 折叠屏适配理解下

发表回复