日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android炫酷动画代码,Android高级UI特效仿直播点赞动画效果

發布時間:2024/1/23 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android炫酷动画代码,Android高级UI特效仿直播点赞动画效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android高級UI特效仿直播點贊動畫效果

發布時間:2020-10-02 16:06:18

來源:腳本之家

閱讀:117

作者:mrr

本文給大家分享高級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(), parent, 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, 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;

}

如何創建一個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, x, y2);

p.moveTo(x, y2);

p.cubicTo(x, y2 - factor, x2, y3 + factor, x2, y3);

return p;

}

Activity中代碼:

下面給大家分享一個源碼:html5+canvas仿抖音直播愛心飄動點贊動畫特效源碼

總結

以上所述是小編給大家介紹的Android高級UI特效仿直播點贊動畫效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

總結

以上是生活随笔為你收集整理的android炫酷动画代码,Android高级UI特效仿直播点赞动画效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。