Android高级UI特效仿直播点赞动画效果

Android高级UI特效仿直播点赞动画效果,第1张

概述本文给大家分享高级UI特效仿直播点赞效果―一个优美炫酷的点赞动画,具体实现代码大家参考本文。

本文给大家分享高级UI特效仿直播点赞效果―一个优美炫酷的点赞动画,具体实现代码大家参考本文。

效果图如下:

攻克难点:

心形图片的路径等走向 心形图片的控制范围

部分代码如下:

通过AbstractPathAnimator定义飘心动画控制器

@OverrIDe public voID start(final VIEw child,final VIEwGroup parent) { parent.addVIEw(child,new VIEwGroup.LayoutParams(mConfig.heartWIDth,mConfig.heartHeight)); floatAnimation anim = new floatAnimation(createPath(mCounter,parent,2),randomrotation(),child); anim.setDuration(mConfig.animDuration); anim.setInterpolator(new linearInterpolator());//启动动画 anim.setAnimationListener(new Animation.AnimationListener() {  @OverrIDe  public voID onAnimationEnd(Animation animation) {  mHandler.post(new Runnable() {   @OverrIDe   public voID run() {   parent.removeVIEw(child);   }  });  mCounter.decrementAndGet();  }  @OverrIDe  public voID onAnimationRepeat(Animation animation) {  }  @OverrIDe  public voID onAnimationStart(Animation animation) {  mCounter.incrementAndGet();  } }); anim.setInterpolator(new linearInterpolator()); child.startAnimation(anim); }/** * 根据图片设置bitmap * @param color * @return */ public Bitmap createHeart(int color) { if (sHeart == null) {  sHeart = BitmapFactory.decodeResource(getResources(),mHeartResID); } if (sHeartborder == null) {  sHeartborder = BitmapFactory.decodeResource(getResources(),mHeartborderResID); } Bitmap heart = sHeart; Bitmap heartborder = sHeartborder; Bitmap bm = createBitmapSafely(heartborder.getWIDth(),heartborder.getHeight()); if (bm == null) {  return null; } Canvas canvas = sCanvas; canvas.setBitmap(bm); Paint p = sPaint; canvas.drawBitmap(heartborder,p); p.setcolorFilter(new PorterDuffcolorFilter(color,PorterDuff.Mode.SRC_Atop)); float dx = (heartborder.getWIDth() - heart.getWIDth()) / 2f; float dy = (heartborder.getHeight() - heart.getHeight()) / 2f; canvas.drawBitmap(heart,dx,dy,p); p.setcolorFilter(null); canvas.setBitmap(null); return bm; }

如何创建一个path

public Path createPath(AtomicInteger counter,VIEw vIEw,int factor) { Random r = mRandom; int x = r.nextInt(mConfig.xRand); int x2 = r.nextInt(mConfig.xRand); int y = vIEw.getHeight() - mConfig.initY; int y2 = counter.intValue() * 15 + mConfig.animLength * factor + r.nextInt(mConfig.animLengthRand); factor = y2 / mConfig.bezIErFactor; //随机xPoint int xPointFactor = mRandom.nextInt(mConfig.xPointFactor); x = xPointFactor + x; x2 = xPointFactor + x2; int y3 = y - y2; y2 = y - y2 / 2; Path p = new Path(); p.moveto(mConfig.initX,y); p.cubicTo(mConfig.initX,y - factor,x,y2 + factor,y2); p.moveto(x,y2); p.cubicTo(x,y2 - factor,x2,y3 + factor,y3); return p; }

Activity中代码:

下面给大家分享一个源码:html5+canvas仿抖音直播爱心飘动点赞动画特效源码

总结

以上所述是小编给大家介绍的AndroID高级UI特效仿直播点赞动画效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

您可能感兴趣的文章:android实现直播点赞飘心动画效果Android控件实现直播App特效之点赞飘心动画Android仿直播特效之点赞飘心效果Android贝塞尔曲线实现直播点赞效果 总结

以上是内存溢出为你收集整理的Android高级UI特效仿直播点赞动画效果全部内容,希望文章能够帮你解决Android高级UI特效仿直播点赞动画效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1142902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存