Android实现QQ拖拽效果和向下兼容水纹效果

现在的App绝大多数都带有底部导航栏,Google Material Design也给出了Bottom navigation的设计规范。点击查看
为了提高开发效率,我写了一个底部开源控件,本文主要讲关于向下兼容点击水纹效果和类似QQ粘性拖拽效果的实现方法。
首先看效果图:

hide.gif

login.gif

关于点击水纹效果其实实现方法很简单。就是画半透明圆,增大半径,不停的重绘直到圆的半径达到你设定的最大值。可以在父容器中捕捉点击的位置然后在viewgroup中绘制圆环实现水纹效果,这样做的好处是每一个view在外面包一层的viewgroup则即可以实现,不用每个view都去实现重绘方法。
核心方法:

/**
 *rippleRate:速率
 *rippleTime:时间
 *rippleDistance:距离=时间*速度,本方法通过rippleTime++,来扩大圆的半径
/**
//点击才开始绘制圆
if (isRippleDrawing) {    
//已经绘制最大圆环 停止继续绘制   
if (rippleDistance<= rippleTime * rippleRate) {      
  isRippleDrawing = false;           
  rippleTime = 0; 
  //刷新视图     
  refreshView();  
} 
else {        
  mHandler.postDelayed(runnable, 10);         
} 
  //从点击的位置绘制圆
  canvas.drawCircle(downX, downY, radiusMax * (((float) rippleTime *rippleRate) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值