AndroidO Launcher3 shortcut悬浮窗设计
来源:互联网 发布:尽知天下事前面一句 编辑:程序博客网 时间:2024/05/17 08:11
# AndroidO Launcher3 shortcut悬浮窗设计
长按桌面图标会弹出一个小的悬浮窗,没有个合适的名字 ,叫dialog会显得俗,叫悬浮窗也不能凸显它的功能,想了想还是暂且叫shortcut悬浮窗吧。它的功能是提供给用户一种快捷方式,比如快速打开应用的某个功能,查看应用提供的widget,查看通知等。
shortcut悬浮窗的特点
- 位置由被点击的icon的位置确定,在图标上方或下方
- 悬浮窗跟icon是左对齐或右对齐
- 悬浮窗的高度由其内容决定
- 指向icon的小箭头总是指向icon
- 圆角矩形边框
实现该功能的核心类
- PopupContainerWithArrow:悬浮窗实际就是一个自定义view,PopupContainerWithArrow就是它的实现类,它继承自AbstractFloatingView
- AbstractFloatingView: 继承自LinearLayout
- PopupDataProvider:为悬浮窗提供数据
- ShortcutsItemView:悬浮窗显示的每一个item就是ShortcutsItemView,它是数据的载体,继承自PopupItemView
- PopupItemView: 继承自FrameLayout的抽象类
- DeepShortcutManager: 数据管理类,负责查询应用对应的shortcuts以及把shortcuts钉在桌面上
- PopupPopulator: 决定哪些shortcut可以被显示以及显示的顺序
- SystemShortcut: 包括widget和 AppInfo shortcut
悬浮窗的设计属于MVC设计模式,PopupDataProvider是Model, PopupContainerWithArrow是View, DeepShortcutManager是Controller。
整体过程分析
用户长按桌面应用图标,该长按事件在Launcher里处理,再经过Workspace的处理最后会调用PopupContainerWithArrow的showForIcon方法来显示悬浮窗。在showForIcon里通过PopupDataProvider获取要应用的shortcuts(包括静态和动态的shortcuts),系统shortcuts(当前只有widget和AppInfo shortcut,其中AppInfo shortcut只有开启了debug模式才会有)以及应用的通知Keys(用来获取当前应用的通知数量),这些数据肯定不会全部显示,需要进一步进行筛选及排序。下面将从具体的几个细节进行分析,暂且先列个提纲,后面补充。
获取应用对应shortcut的过程
shortcut分类及排序
悬浮窗位置计算
暂且写到这里,后续补充。
阅读全文
0 0
- AndroidO Launcher3 shortcut悬浮窗设计
- Android Launcher3 Shortcut 包名两行显示相切的问题。
- Android Launcher3在Hotseat中将AllappsButton 替换成普通shortcut
- launcher3
- Launcher3
- shortcut
- shortcut
- 悬浮窗
- 悬浮窗
- android 超炫的悬浮窗设计与实现
- AndroidO binder aligen
- Launcher3--初识Launcher3
- Launcher3--初识Launcher3
- mac shortcut。 Xcode shortcut
- 悬浮活动窗
- VC悬浮窗源代码
- 悬浮窗C#
- java悬浮窗效果
- MySQL设置默认值
- 2017健康舒适之家的新标准
- 分段函数求值
- android中常用到的依赖
- thinkphp5输出执行的sql语句
- AndroidO Launcher3 shortcut悬浮窗设计
- 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机
- ActiveMQ学习教程
- hibernate:基于注解一对多双向关联关系外键方式
- g_file_storage.ko及g_multi.ko参数说明
- QT播放器音频笔记
- [易飞]凭证尾行空白显示异常处理
- 走进Spark生态圈:环境的安装与配置
- 自动爬取网站并截图