Android实现美团外卖底部导航栏动画

这篇文章主要介绍了Android实现美团外卖底部导航栏动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

体验了一下美团外卖的底部导航栏,感觉动画很流畅,分割线被顶起,还有图标的动画,可能用的lottie,觉得分割线被顶起可以自己写动画,所以试着写了一下 。

想自定义view点击实现动画效果,自定义view的区域一定比背景需要被顶起的线要高,所以布局如下:

开始绘制view,被顶起的曲线分三段,前后两端曲线对称的,用path绘制曲线,中间段绘制贝塞尔曲线。

那么我们分别绘制三段曲线,用ValueAnimator实现效果,

 private void initAnim() { value = startValue; animator = ValueAnimator.ofInt(startValue, halfValue, endValue); //  animator.setInterpolator(new DecelerateInterpolator()); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { value = (int) valueAnimator.getAnimatedValue(); invalidate(); } }); animator.setDuration(ANIM_TIME); animator.start(); }

动画执行过程中有个回弹,那么value的变化需要一个中间值,

 startValue = 0; halfValue = -DensityUtils.dp2px(context, 35); endValue = -DensityUtils.dp2px(context, 25);

在onDraw中绘制曲线代码如下,

 rectF = new RectF((((float)width - (float)contentSize) / 2), lineToTop + value, (float) width - ((float)width - (float)contentSize) / 2, height + value); if (value <0 ) { path new path();>

最后在onDraw()中画上图片也用属性动画移动就成功啦。

因为有曲线衔接贝塞尔曲线,感觉弧度有时候改变曲线不是很流畅,大家应该会有更好的办法 欢迎补充!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网。

以上就是Android实现美团外卖底部导航栏动画的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动