From b44ef5004ea1baf926b18f9124cd7ebece2db492 Mon Sep 17 00:00:00 2001 From: clock <1084991652clock@gmail.com> Date: Thu, 21 Jul 2016 20:21:48 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Animator=E7=BB=83?= =?UTF-8?q?=E4=B9=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- src/main/AndroidManifest.xml | 11 ++- .../study/activity/AnimatorActivity.java | 76 +++++++++++++++++++ .../clock/study/activity/MainActivity.java | 9 ++- src/main/res/animator/simple_animator.xml | 18 +++++ src/main/res/layout/activity_animator.xml | 40 ++++++++++ src/main/res/layout/activity_main.xml | 6 ++ src/main/res/values/strings.xml | 3 + 8 files changed, 160 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/clock/study/activity/AnimatorActivity.java create mode 100644 src/main/res/animator/simple_animator.xml create mode 100644 src/main/res/layout/activity_animator.xml diff --git a/build.gradle b/build.gradle index 4f16e25..0ad5e09 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ android { defaultConfig { applicationId "com.clock.study" - minSdkVersion 9 + minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0" diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 7a0cbc0..863ae31 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -29,8 +29,15 @@ android:name=".activity.PhotoPreviewActivity" android:label="@string/photo_preview" android:screenOrientation="portrait" /> - - + + + \ No newline at end of file diff --git a/src/main/java/com/clock/study/activity/AnimatorActivity.java b/src/main/java/com/clock/study/activity/AnimatorActivity.java new file mode 100644 index 0000000..5ffa395 --- /dev/null +++ b/src/main/java/com/clock/study/activity/AnimatorActivity.java @@ -0,0 +1,76 @@ +package com.clock.study.activity; + +import android.animation.Animator; +import android.animation.AnimatorInflater; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.animation.AnimationSet; + +import com.clock.study.R; + +/** + * About Android Animator + * + * @author Clock + * @since 2016-07-21 + */ +public class AnimatorActivity extends AppCompatActivity implements View.OnClickListener { + + private static final String TAG = AnimatorActivity.class.getSimpleName(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_animator); + + findViewById(R.id.btn_value_anim).setOnClickListener(this); + findViewById(R.id.btn_object_anim_alpha).setOnClickListener(this); + findViewById(R.id.btn_object_anim_rotation).setOnClickListener(this); + findViewById(R.id.btn_object_anim_set).setOnClickListener(this); + findViewById(R.id.btn_object_anim_xml).setOnClickListener(this); + + } + + @Override + public void onClick(View v) { + int viewId = v.getId(); + if (viewId == R.id.btn_value_anim) { + ValueAnimator valueAnimator = ValueAnimator.ofInt(1, 100); + valueAnimator.setDuration(3000); + valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + int currentValue = (int) animation.getAnimatedValue(); + Log.i(TAG, "currentValue: " + currentValue); + } + }); + valueAnimator.start(); + } else if (viewId == R.id.btn_object_anim_alpha) { + ObjectAnimator alphaObjectAnimator = ObjectAnimator.ofFloat(v, "alpha", 1f, 0f, 1f); + alphaObjectAnimator.setDuration(3000); + alphaObjectAnimator.start(); + } else if (viewId == R.id.btn_object_anim_rotation) { + ObjectAnimator rotationObjectAnimator = ObjectAnimator.ofFloat(v, "rotation", 0f, 360f); + rotationObjectAnimator.setDuration(3000); + rotationObjectAnimator.start(); + } else if (viewId == R.id.btn_object_anim_set) { + AnimatorSet animatorSet = new AnimatorSet(); + ObjectAnimator alphaObjectAnimator = ObjectAnimator.ofFloat(v, "alpha", 1f, 0f, 1f); + ObjectAnimator rotationObjectAnimator = ObjectAnimator.ofFloat(v, "rotation", 0f, 360f); + animatorSet.play(alphaObjectAnimator).with(rotationObjectAnimator); + //animatorSet.play(alphaObjectAnimator).after(rotationObjectAnimator); + //animatorSet.playTogether(alphaObjectAnimator, rotationObjectAnimator); + animatorSet.setDuration(3000); + animatorSet.start(); + } else if (viewId == R.id.btn_object_anim_xml) { + AnimatorSet animatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.simple_animator); + animatorSet.setTarget(v); + animatorSet.start(); + } + } +} diff --git a/src/main/java/com/clock/study/activity/MainActivity.java b/src/main/java/com/clock/study/activity/MainActivity.java index b1d1da5..0738d6b 100644 --- a/src/main/java/com/clock/study/activity/MainActivity.java +++ b/src/main/java/com/clock/study/activity/MainActivity.java @@ -16,6 +16,8 @@ protected void onCreate(Bundle savedInstanceState) { findViewById(R.id.btn_camera_take_photo).setOnClickListener(this); findViewById(R.id.btn_animation).setOnClickListener(this); + findViewById(R.id.btn_animator).setOnClickListener(this); + } @Override @@ -25,8 +27,11 @@ public void onClick(View v) { Intent takePhotoIntent = new Intent(this, CapturePhotoActivity.class); startActivity(takePhotoIntent); } else if (viewId == R.id.btn_animation) { - Intent androidAnimIntent = new Intent(this, AnimationActivity.class); - startActivity(androidAnimIntent); + Intent animationIntent = new Intent(this, AnimationActivity.class); + startActivity(animationIntent); + } else if (viewId == R.id.btn_animator) { + Intent animatorIntent = new Intent(this, AnimatorActivity.class); + startActivity(animatorIntent); } } } diff --git a/src/main/res/animator/simple_animator.xml b/src/main/res/animator/simple_animator.xml new file mode 100644 index 0000000..87a4808 --- /dev/null +++ b/src/main/res/animator/simple_animator.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/res/layout/activity_animator.xml b/src/main/res/layout/activity_animator.xml new file mode 100644 index 0000000..0ccb647 --- /dev/null +++ b/src/main/res/layout/activity_animator.xml @@ -0,0 +1,40 @@ + + + +