前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >极速分享,微博遇上折叠屏可以这么玩!

极速分享,微博遇上折叠屏可以这么玩!

作者头像
软件绿色联盟
发布2022-03-31 15:40:43
7070
发布2022-03-31 15:40:43
举报

折叠屏手机自发布以来,就成为业内关注的焦点。其创新的屏幕形态给应用带来了很多创新玩法。如何让自己的App在折叠屏手机获得1+1大于2的效果?

在本文中,微博技术专家将从适配场景演示、实现方案解析、未来适配规划三个维度为大家带来微博在折叠屏上的适配经验分享。

适配场景演示

针对折叠屏手机存在较多的分屏或多窗口场景,微博适配了折叠屏多窗口拖拽的特性。可以将第三方应用的文字、图片、视频等媒介直接拖拽到微博发布器进行发布,省略了复制粘贴等复杂的步骤。具体演示如下视频所示。

实现方案解析

2.1 分屏拖拽实现设计的API

分屏模式拖拽主要涉及到下图中的四个API,分别对应拖拽数据的方法、类、创建拖拽阴影和监听回调获取数据等功能。微博发布器主要扮演的是拖拽接收方的角色,所以主要用到的是android.view.View.OnDragListener这个API。

2.2 拖出实现

以拖拽图片的demo为例,我们首先需要创建一个新的ClipDate。将图片类型封装到clipDescription,然后将图片文件路径封装到FileProvider前置的Uri,通过uri创建ClipDate.item,最后将ClipDate进行封装;第二步再实例化一个拖动阴影builder,最后将封装好的Clipdate、builder、flag传入到view.startDragAndDrop方法中,拖出实现已完成。具体代码可以参考下图。

在这里,我们需要注意:

1) 必须设置DRAG_FLAG­_GlOBAL标记,用户可以将数据拖动到其他应用。

2)必须同时设置DRAG_FLAG_GLOBAL_URI_READ和DRAG_FLAG_GLOBAL_URI_WRITE标记,或者设置其中任何一项,具体取决于对目标应用具有的数据读写权限。

3) 由于安卓是从N版本开始支持多窗口应用见拖拽数据,所以一定要做SDKVERSION版本的判断。

2.3 拖入实现

在拖入实现中,主要用到的是onDragListenner API,重写了里面的onDrag方法,来接收拖拽过来的数据。具体代码参考如下:

在这里,同样需要注意以下几点:

1) 做SDKVERSION版本判断。

2) 在处理用户拖入其他数据之前要去重置权限,并与前面的flag设置的权限保持一致,否则可能导致文件接收失败。

3) 接收的数据可能包含多个类型的文件,但是只返回了一个文件类型,就可能导致文件的丢失。因此在这里需要做一个兼容处理,通过uri来判断文件类型。

2.4 适配中遇到的问题

在前面的分享中,我们也提到一些需要注意的点。经过总结,在适配中遇到比较多的问题及其解决方法如下。

后期拖拽功能规划

目前,微博已经支持第三方应用的文字、图片、视频等内容以拖拽的形式分享到微博。后期,我们将重点跟进微博拖拽分享功能,实现微博的图片和文字以拖拽的形式分享到第三方。

以上就是本期分享的全部内容,你还希望哪些酷炫的交互设计在折叠屏设备上实现呢?

· END ·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件绿色联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档