精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Android如何實現美團外賣底部導航欄動畫-創新互聯

這篇文章主要介紹了Android如何實現美團外賣底部導航欄動畫,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

衡南網站建設公司創新互聯,衡南網站設計制作,有大型網站制作公司豐富經驗。已為衡南1000+提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的衡南做網站的公司定做!

體驗了一下美團外賣的底部導航欄,感覺動畫很流暢,分割線被頂起,還有圖標的動畫,可能用的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 path = new Path();   //繪制第一段圓弧   path.moveTo(rectF.left - 20, lineToTop);   float firstCubicHight = ((float) lineToTop - rectF.top) / 4;   float end = (float) lineToTop - firstCubicHight;   path.cubicTo(     rectF.left - 10,     (float) lineToTop - firstCubicHight / 16,     rectF.left,     (float) lineToTop - firstCubicHight / 12,     rectF.left + 10,     end   );    //繪制第二段圓弧    path.quadTo(     rectF.left + contentSize / 2,     rectF.top * 0.9f,     rectF.right - 10,     end   );   //繪制第三段圓弧,和第一段對稱    path.cubicTo(     rectF.right,     (float) lineToTop - firstCubicHight / 12,     rectF.right + 10,     (float) lineToTop - firstCubicHight / 16,     rectF.right + 20,     lineToTop   );    Path pathBg = new Path();   pathBg.addPath(path);    pathBg.lineTo(rectF.right + 20, height);   pathBg.lineTo(rectF.left - 20, height);   pathBg.lineTo(rectF.left - 20, lineToTop);   canvas.drawPath(pathBg, paintBg);//繪制白色背景    canvas.drawPath(path, paintBgStroke);//繪制曲線   }

最后在onDraw()中畫上圖片也用屬性動畫移動就成功啦。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android如何實現美團外賣底部導航欄動畫”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯網站建設公司,,關注創新互聯行業資訊頻道,更多相關知識等著你來學習!


文章標題:Android如何實現美團外賣底部導航欄動畫-創新互聯
瀏覽地址:http://m.jcarcd.cn/article/dssich.html
主站蜘蛛池模板: 精品国内成人 | 日本一二 | 精品香蕉伊思人在 | 精品国产香蕉伊思人 | 国产午夜福利院在 | 国产丝瓜| 日韩精品特区 | 午夜视频在线免费 | 欧美性在线观看 | 成人伦理动 | 国产97在线看 | 国产男女爽爽 | 国产一区二区视频 | 国产精品秘蜜蕾丝袜 | 精品午夜国产在 | 日韩精品亚洲中文 | 欧美亚洲性爱在线看 | 成人深夜影院 | 精品国产自左线拍 | 国产高清看片日韩 | 国产亚洲精品福利片 | 国产A级片网站 | 区三区精品视频 | 最新在线观看视频国产91 | 岛国大片免费观看 | 日韩美女视频一区 | 国产亚洲无 | 国产美女弄出 | 欧美性凶猛xx | 成人播播网 | 91精品国产福利 | 国产乱老熟视频网 | 日本午夜视频 | 国产亚洲一欧美 | 日本成人免费网站 | 日韩精品中文一 | 日韩亚洲制服丝 | 精品人无| 成人h视频在线观看 | 国产高清成人精品 | 国产视频精品分类 |