走近Android -R 11 手势的详细设计与实现源码分析

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

Android 11手势的设计与实现

 

Android R虚拟按键的设计与实现一文中我们详细的讲解了android操作系统中的虚拟按键实现,所有逻辑都是在SystemUi中,然后通过事件注入的方式来实现最近任务、返回、HOME等按键。

 

这篇文章我们详细来分析android操作系统中的手势是如何实现返回、MENU、HOME按键的。为了用户交互的动画效果手势中的HOME和MENU不再是利用注入按键来实现,而是直接放在Lanucher3中实现,返回桌面手势和启动最近任务手势出现后,会在Lanucher中直接启动对应的最近任务界面,从而使得手势交互更加流畅可以取消。返回键还是沿用了虚拟按键的原理,通过注入KEYCODE_BACK来实现,只不过时操作方式不同而已。

 

总结:手势的设计并不需要判断用户是否按下后向上滑动或者左右滑动,而是当我们按下处于这块区域时,此处的窗口就得到了事件从而跟随手指改变,并根据最后抬手的状态做出最终的处理。

 

 

我们知道手势是在桌面Lanucher启动后才会生效的。因此我们需要先分析SystemUI和Lanucher是如何启动的,这样我们才能知道手势是如何初始化的。

 

android手机开机后我们都知道先进入的就是锁屏界面,因此此时SystemUI已经启动,我们看一下SystemUi在系统中的配置,在SystemUi的应用配置文件中frameworks\base\packages\SystemUI\AndroidManifest.xml中是这样定义的。

<application
   
android:name=".SystemUIApplication"
   
android:persistent="true"
   
android:allowClearUserData="false"
   
android:allowBackup="false"
   
android:hardwareAccelerated="true"
   
android:label="@string/app_label"
   
android:icon="@drawable/icon"
   
android:process="com.android.systemui"
   
android:supportsRtl="true"
   

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值