aboutsummaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorTrumeet <liangyuteng12345@gmail.com>2017-08-02 17:54:39 +0800
committerTrumeet <liangyuteng12345@gmail.com>2017-08-02 17:54:39 +0800
commit38f245dc0309712b4b5f2a044b7a7304215c65f4 (patch)
treed3cc5b44126406da20f0903c91d9e7ec03e57f1e /library
parentad9fdbdfcc37220779d64c3ac7547ec3ceff6958 (diff)
downloadAnimations-38f245dc0309712b4b5f2a044b7a7304215c65f4.tar
Animations-38f245dc0309712b4b5f2a044b7a7304215c65f4.tar.gz
Animations-38f245dc0309712b4b5f2a044b7a7304215c65f4.tar.bz2
Animations-38f245dc0309712b4b5f2a044b7a7304215c65f4.zip
refactor: use drawable instead of ImageView
Diffstat (limited to 'library')
-rw-r--r--library/build.gradle2
-rw-r--r--library/src/main/java/top/trumeet/snippet/aospanimation/library/FingerprintAnimationImageView.java79
-rw-r--r--library/src/main/java/top/trumeet/snippet/aospanimation/library/drawables/LoopAnimatedVectorDrawableCompat.java65
3 files changed, 66 insertions, 80 deletions
diff --git a/library/build.gradle b/library/build.gradle
index b73bf02..8d8d745 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -26,7 +26,7 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:animated-vector-drawable:26.0.0'
+ compile 'com.android.support:animated-vector-drawable:26.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
diff --git a/library/src/main/java/top/trumeet/snippet/aospanimation/library/FingerprintAnimationImageView.java b/library/src/main/java/top/trumeet/snippet/aospanimation/library/FingerprintAnimationImageView.java
deleted file mode 100644
index 0417e5a..0000000
--- a/library/src/main/java/top/trumeet/snippet/aospanimation/library/FingerprintAnimationImageView.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package top.trumeet.snippet.aospanimation.library;
-
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.graphics.drawable.Drawable;
-import android.support.graphics.drawable.Animatable2Compat;
-import android.support.graphics.drawable.AnimatedVectorDrawableCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.util.AttributeSet;
-import android.widget.ImageView;
-
-/**
- * Created by Trumeet on 2017/8/2.
- * @see <a href="https://github.com/android/platform_packages_apps_settings/blob/master/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java" />
- */
-
-public class FingerprintAnimationImageView extends ImageView {
- private AnimatedVectorDrawableCompat mIconAnimationDrawable;
- private boolean mAnimationCancelled;
-
- public FingerprintAnimationImageView(Context context) {
- super(context);
- init();
- }
-
- public FingerprintAnimationImageView(Context context, AttributeSet attrs) {
- super(context, attrs);
- init();
- }
-
- public FingerprintAnimationImageView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init();
- }
-
- private void init () {
- Drawable background = getResources().getDrawable(R.drawable.fp_illustration_enrollment);
- DrawableCompat.setTintList(background, ColorStateList.valueOf(getResources().getColor(R.color.fingerprint_indicator_background_resting)));
- setBackgroundDrawable(background);
- mIconAnimationDrawable = AnimatedVectorDrawableCompat.create(getContext(),
- R.drawable.enrollment_fingerprint_isolated_animation);
- setImageDrawable(mIconAnimationDrawable);
- mIconAnimationDrawable.registerAnimationCallback(mIconAnimationCallback);
- }
-
- private final Animatable2Compat.AnimationCallback mIconAnimationCallback =
- new Animatable2Compat.AnimationCallback() {
- @Override
- public void onAnimationEnd(Drawable d) {
- if (mAnimationCancelled) {
- return;
- }
-
- // Start animation after it has ended.
- post(new Runnable() {
- @Override
- public void run() {
- startIconAnimation();
- }
- });
- }
- };
-
- /**
- * Start animation
- */
- public void startIconAnimation() {
- mAnimationCancelled = false;
- mIconAnimationDrawable.start();
- }
-
- /**
- * Stop animation, do not forgot it in onStop
- */
- public void stopIconAnimation() {
- mAnimationCancelled = true;
- mIconAnimationDrawable.stop();
- }
-}
diff --git a/library/src/main/java/top/trumeet/snippet/aospanimation/library/drawables/LoopAnimatedVectorDrawableCompat.java b/library/src/main/java/top/trumeet/snippet/aospanimation/library/drawables/LoopAnimatedVectorDrawableCompat.java
new file mode 100644
index 0000000..7a45cc4
--- /dev/null
+++ b/library/src/main/java/top/trumeet/snippet/aospanimation/library/drawables/LoopAnimatedVectorDrawableCompat.java
@@ -0,0 +1,65 @@
+package top.trumeet.snippet.aospanimation.library.drawables;
+
+import android.graphics.drawable.Drawable;
+import android.support.graphics.drawable.Animatable2Compat;
+import android.support.graphics.drawable.AnimatedVectorDrawableCompat;
+
+/**
+ * Created by Trumeet on 2017/8/2.
+ * Wrap android.support.graphics.drawable.AnimatedVectorDrawableCompat,
+ * support loop
+ * @see AnimatedVectorDrawableCompat
+ */
+
+public class LoopAnimatedVectorDrawableCompat {
+ private AnimatedVectorDrawableCompat mAnimator;
+ private boolean mAnimationCancelled;
+
+ public LoopAnimatedVectorDrawableCompat (AnimatedVectorDrawableCompat animatedVectorDrawableCompat) {
+ this.mAnimator = animatedVectorDrawableCompat;
+ setLoopEnable(true);
+ }
+
+ private final Animatable2Compat.AnimationCallback mIconAnimationCallback =
+ new Animatable2Compat.AnimationCallback() {
+ @Override
+ public void onAnimationEnd(Drawable d) {
+ if (mAnimationCancelled) {
+ return;
+ }
+
+ startAnimation();
+ }
+ };
+
+ /**
+ * Start animation
+ */
+ public void startAnimation() {
+ mAnimationCancelled = false;
+ mAnimator.start();
+ }
+
+ /**
+ * Stop animation, do not forgot it in onStop
+ */
+ public void stopAnimation() {
+ mAnimationCancelled = true;
+ mAnimator.stop();
+ }
+
+ /**
+ * Enable or Disable loop
+ * @param enable enable loop
+ */
+ public void setLoopEnable (boolean enable) {
+ if (enable)
+ mAnimator.registerAnimationCallback(mIconAnimationCallback);
+ else
+ mAnimator.unregisterAnimationCallback(mIconAnimationCallback);
+ }
+
+ public AnimatedVectorDrawableCompat getDrawable () {
+ return mAnimator;
+ }
+}