最近需要做短按拍照,长按录像功能,虽然长按只需要LongClickListener就好了,但是要同时做出动画效果。
在网上转了一圈,发现仿微信长按录像的不少,例如这个,但是仿FaceU的好像还没有,所以决定自己写一个。
先放一张效果图:
一、实现流程分析
按钮要实现类似ClickListener和LongClickListener的功能,因此需要监听触控事件
按照时间顺序,按钮的动画效果大概是这样:
- 还没有到达LongClick的时间阈值,没有任何反应,静态的画面为中间一个半透明白色圆形,外面一个白色圆环
- 动画开始,中间的圆形消失,变成一个逐渐扩大的绿色圆形
- 在绿色圆形扩大的同时,外面的圆环扩大,同时进度条开始移动
- 绿色圆形和圆环扩大到最大值
- 进度条满,达到录像的时间阈值或用户手指离开(ACTION_UP)
此外,还有两个黑色半透明的圆环作为描边,但是效果不是很明显,略去不表。