vivo X Fold 折叠屏适配官方指南发布:应用大小可调

IT资讯2年前 (2022)更新 IT资讯
0

本篇文章给各位网友带来的资讯是:vivo X Fold 折叠屏适配官方指南发布:应用大小可调、不同分辨率布局、大屏体验 详情请欣赏下文

IT大王 4 月 30 日消息,前几天,vivo 首款折叠屏手机正式官宣,为让开发者更好地适配新机型,vivo 团队特推出了全新的适配指南。

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

vivo 折叠屏有展开态和折叠态,这两种状态下屏幕的分辨率是不同的。因此,在折叠屏状态切换时,分辨率也要动态切换。

如果 App 或 activity 不支持不同分辨率屏幕自动适配,则会存在一些显示异常的问题,例如下图所示的左右或下半屏存黑边问题:

展开态 ▼

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

折叠态 ▼

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

适配建议

#01

让应用大小可调

为了加强用户体验,折叠屏在展开态和折叠态动态切换时,应用界面不允许存在左右黑边或下半屏黑边的情况(即应用进入兼容模式),因此需要应用支持不同分辨率情况下页面大小可调。

此功能由 android:resizeableActivity 属性控制,在应用的 AndroidManifest.xml 中可以针对 App 或 activity 进行设置。

<application
    android:resizeableActivity="true">

    <activity
          android:resizeableActivity="true" />
</application>

Note:

1. 当应用的 targetSdkVersion >=24 时,android 系统默认设置 android:resizeableActivity=”true”,不需要应用声明即可支持应用大小可调。当应用的 targetSdkVersion < 24 时,需要应用针对 application 或 activity 设置 android:resizeableActivity=”true”。

2. application android:resizeableActivity=”true” 时,会针对 App 的所有 activity 生效,因此当应用只需要声明单独的 activity 时,可以只针对单个 activity 进行设置。

系统侧建议:针对 application 设置 android:resizeableActivity=”true”,避免应用部分页面在折叠屏状态变化后存在黑边问题。

其他适配事项可以参考 Android 开发者适配指导 (例如链接中提到的保存界面状态和支持配置变更部分):

https://developer.android.com/guide/topics/ui/foldables?hl=zh-cn

3.设置 android:resizeableActivity=”true” 后,应用即可进入分屏模式,若不想进入分屏模式(进入分屏模式后会有一些适配问题)又不被当做兼容模式,可以在 Activity 里加上如下代码:

<meta-data
    android:name="android.supports_size_changes" android:value="true" />

#02

不同分辨率布局适配

折叠屏涉及到不同的分辨率尺寸和 DPI,应用界面除了要保证分辨率切换时无黑边问题外,还需要保证应用界面在不同分辨率显示时页面无明显的拉伸、错位和重叠等问题,因此需要优化布局和提供对应的位图来进行适配。

详细适配方法可参考以下链接:

https://developer.android.com/training/multiscreen/screensizes?hl=zh-cn

#03

适配大屏体验

在大屏适配时,部分显示页面仅仅只是放大,而没有利用大屏的空间展示更多内容。

因此,开发者们需要有效利用大屏空间调整布局展示,显示更多的内容。

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

要解决此类显示问题,开发者们可以在 AndroidManifest.xml android:configChanges 中声明 “screenSize” 变化,然后在 onConfigurationChanged 中动态调整布局。

详细适配方法可以参考以下链接:

https://developer.android.com/guide/topics/resources/runtime-changes?hl=zh-cn

#04

判定折叠屏方法

运行时判断:

android.util.FtDeviceInfo

public static String getDeviceType  

返回的三种类型:phone、tablet 和 foldable

开发者可以通过反射的方式获取设备类型,返回值 foldable 表示折叠屏设备。

反射代码示例:

private static boolean isVivoFoldableDevice(){
    try {
        Class<?>  c= Class.forName("android.util.FtDeviceInfo");
        Method  m = c.getMethod("getDeviceType");
        Object dType = m.invoke(c);
        Log.d("fold","getDeviceType="+dType);
        return "foldable".equals(dType);
    } catch (Exception e) {
        e.printStackTrace();

    }
    return false;
}

#05

机型配置

若应用已经针对其他厂家折叠屏设备进行了适配,新的折叠屏设备根据机型名配置即可生效,可直接配置 vivo 折叠屏 model 型号 V2178A。

调试和验证

#01

手机调试

DPI 设置:adb shell wm density 480

展开态:adb shell wm size 1916×2160

折叠态:adb shell wm size 1080×2520

Note:

1. 折叠屏展开态和折叠态 DPI 一样都是 480,只需要设置一次

2. 展开态和折叠态进行切换时,可以通过设置不同的分辨率来进行模拟切换

3. 查看手机当前 DPI 和 size 的方法:adb shell wm density 和 adb shell wm size

4. DPI 和分辨率设置后,重启手机设置不会发生变化,若需要调回手机默认值,可通过 adb shell wm size reset 和 adb shell wm density reset 进行恢复

5. 由于 Android 模拟器调试效率问题,推荐用手机模拟调试和验证;若需要 100% 还原真机物理尺寸,可考虑模拟器

#02

模拟器调试

除了通过手机动态切换分辨率的方式来进行调试外,还可通过模拟器进行调试和验证。Android Studio 模拟器 Phone 分类支持 8 英寸和 7.3 英寸的折叠屏调试,但是无法克隆(即无法修改模拟器的物理尺寸和分辨率)。

模拟器 System image 如果是 x86 的系统,则只支持 32 位应用的安装和运行;如果是纯 64 位的应用,模拟器需要选择 arm64-v8a,否则无法安装和运行应用。

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

Note:

1. Android Studio Foldable 模拟器无法修改物理尺寸、分辨率和 DPI,因此在适配时,无法完全模拟 vivo 折叠屏手机,在 App 或 activity resizeableActivity = true 时,为了验证切屏是否有黑边可以在 Android 原生模拟器查看效果。

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

2. 64 位模拟器需要 PC 主机支持,部分 PC 无法正常启动 64 位模拟器。

#03

折叠屏展开态模拟器

Android 折叠屏模拟器无法修改物理尺寸、分辨率和 DPI。若应用在进行《2.2 不同分辨率布局适配》时需要 100% 模拟折叠屏展开态的屏幕进行调试,可以通过克隆 Tablet 分类的 Nexus 10,然后修改 vivo 折叠屏手机对应的物理尺寸、分辨率和 DPI 进行调试和验证。

vivo X Fold 折叠屏适配官方指南发布:应用大小可调

Note:

1. 应用 UI 兼容性适配对物理尺寸有强关联时,请务必修改 Screen size 为 8.03,分辨率是展开态分辨率

2. 需确认 64 位模拟器是否可以运行需要 PC 主机支持

3. 若手机模拟 DPI 和分辨率调试无问题后,无法在模拟器运行,可以发包给 vivo 接口人,在 vivo 折叠屏真机运行点检

4. 模拟器无法修改 DPI,需要启动模拟器后,通过 adb shell 命令设置

此时打开终端,可以看到模拟器设备已经挂载和连接,可以进行 adb 操作。

 adb devices
List of devices attached
emulator-5554   device

模拟器无法直接修改 DPI,需要启动模拟器后单独设置。

adb shell wm density 480
© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章