1. 程式人生 > >Android 仿微信紅包動畫特效一分鐘搞定

Android 仿微信紅包動畫特效一分鐘搞定

簡單來說你多在微信中發幾個群紅包就能有一些思路,但是有些特定的狀態需要注意前後端配合。

搞了半個小時TMD沒有把視訊轉換成GIF,直接上照片吧,醉了~

1.支付完成之後會出現第一個圖,開啟第二個圖的時候當前介面是有一個動畫效果的,可以微信中發個群紅包試試~

無非是圖片抖兩下,這裡將第二張的紅包總佈局設定Animation

<?xml version="1.0" encoding= "UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" 
> <!--設定圖片縮放第一次從0.9-1.1倍--> <scale android:fromXScale="0.9" android:toXScale="1.1" android:fromYScale="0.9" android:toYScale="1.1" android:pivotX="50%" android:pivotY="50%" android:duration="300" android:repeatCount="1" android:repeatMode="reverse" /> <!--設定圖片縮放第二次從0.9-1倍--> <scale android
:fromXScale="0.9" android:toXScale="1" android:fromYScale="0.9" android:toYScale="1" android:pivotX="50%" android:pivotY="50%" android:duration="300" android:repeatCount="1" android:repeatMode="reverse" /> </set>
然後在Activity中調就ok了
Animation animationLayout = AnimationUtils.loadAnimation(this, R.anim.award_anima
); awardAnimationLayout.setAnimation(animationLayout);

2.點選圖二的開的時候,想讓這個圖片轉動,如果你們的UI妹子就給你一張這個圖,只能讓當前這個圖片按照Y軸轉動了

定義一個Animation自己去畫吧

package shangche.club.geton.view;
import android.graphics.Camera;
import android.graphics.Matrix;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Transformation;
/**
 * Created by HuoWei on 2017/12/18.
 */
public class AwardRotateAnimation extends Animation {
    int centerX, centerY;
Camera camera = new Camera();
@Override
public void initialize(int width, int height, int parentWidth,
                           int parentHeight) {
        super.initialize(width, height, parentWidth, parentHeight);
//獲取中心點座標
centerX = width / 2;
centerY = height / 2;
//動畫執行時間  自行定義
setDuration(800);
setInterpolator(new DecelerateInterpolator());
}

    @Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
        final Matrix matrix = t.getMatrix();
camera.save();
//中心是繞Y軸旋轉  這裡可以自行設定X軸 Y軸 Z軸
camera.rotateY(360 * interpolatedTime);
//把我們的攝像頭加在變換矩陣上
camera.getMatrix(matrix);
//設定翻轉中心點
matrix.preTranslate(-centerX, -centerY);
matrix.postTranslate(centerX, centerY);
camera.restore();
}
}
直接在Activity中呼叫就OK了,
AwardRotateAnimation animation = new AwardRotateAnimation();
animation.setRepeatCount(Animation.INFINITE);
openGroupAward.startAnimation(animation);
網路請求結束後跳轉到詳情時,記得清空View的狀態
openGroupAward.clearAnimation();

demo下載地址:http://download.csdn.net/download/android_hv/10166569