最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android高級(jí)UI特效仿直播點(diǎn)贊動(dòng)畫效果

 更新時(shí)間:2018年03月30日 16:45:33   投稿:mrr  
這篇文章主要介紹了Android高級(jí)UI特效仿直播點(diǎn)贊動(dòng)畫效果,最近比較火的抖音快手直播視頻都有這樣的效果,下面腳本之家小編給大家?guī)韆ndroid 仿直播點(diǎn)贊效果的實(shí)現(xiàn)代碼,需要的朋友參考下吧

本文給大家分享高級(jí)UI特效仿直播點(diǎn)贊效果—一個(gè)優(yōu)美炫酷的點(diǎn)贊動(dòng)畫,具體實(shí)現(xiàn)代碼大家參考本文。

效果圖如下:

攻克難點(diǎn):

心形圖片的路徑等走向 心形圖片的控制范圍

部分代碼如下:

通過AbstractPathAnimator定義飄心動(dòng)畫控制器

@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(), parent, child);
 anim.setDuration(mConfig.animDuration);
 anim.setInterpolator(new LinearInterpolator());//啟動(dòng)動(dòng)畫
 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);
 }

/**
 * 根據(jù)圖片設(shè)置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, 0, 0, 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;
 }

如何創(chuàng)建一個(gè)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;
 //隨機(jī)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, x, y2);
 p.moveTo(x, y2);
 p.cubicTo(x, y2 - factor, x2, y3 + factor, x2, y3);
 return p;
 }

Activity中代碼:

下面給大家分享一個(gè)源碼:html5+canvas仿抖音直播愛心飄動(dòng)點(diǎn)贊動(dòng)畫特效源碼

總結(jié)

以上所述是小編給大家介紹的Android高級(jí)UI特效仿直播點(diǎn)贊動(dòng)畫效果,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

阿勒泰市| 朝阳市| 高邮市| 农安县| 灵武市| 海口市| 繁峙县| 崇义县| 英吉沙县| 珲春市| 托里县| 沁源县| 金门县| 永州市| 永善县| 呈贡县| 玛曲县| 太保市| 玉环县| 常熟市| 阿尔山市| 兴安盟| 闻喜县| 皋兰县| 麻栗坡县| 弥勒县| 应城市| 论坛| 油尖旺区| 石棉县| 嘉禾县| 开原市| 南漳县| 砀山县| 洮南市| 凤山市| 通化县| 富民县| 和林格尔县| 忻州市| 武隆县|