Android 仿微信紅包動畫特效一分鐘搞定
阿新 • • 發佈:2019-01-28
簡單來說你多在微信中發幾個群紅包就能有一些思路,但是有些特定的狀態需要注意前後端配合。
搞了半個小時TMD沒有把視訊轉換成GIF,直接上照片吧,醉了~
1.支付完成之後會出現第一個圖,開啟第二個圖的時候當前介面是有一個動畫效果的,可以微信中發個群紅包試試~
無非是圖片抖兩下,這裡將第二張的紅包總佈局設定Animation
<?xml version="1.0" encoding= "UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"然後在Activity中調就ok了> <!--設定圖片縮放第一次從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>
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