package com.easyinfogeek; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; import android.view.animation.Animation.AnimationListener; import android.view.animation.RotateAnimation; import android.widget.Button; import android.widget.ImageView; public class AnimationDemoActivity extends Activity { private ImageView imageView; // define animationType enum enum AnimationType{ Alpha, Rotate, Scale, Translate, Complex } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //define 4 button for each tween animation imageView = (ImageView)findViewById(R.id.imageView); Button alpha = (Button)findViewById(R.id.Alpha); alpha.setOnClickListener(new AnimationClickListener(AnimationType.Alpha)); Button rotate = (Button)findViewById(R.id.Rotate); rotate.setOnClickListener(new AnimationClickListener(AnimationType.Rotate)); Button scale = (Button)findViewById(R.id.Scale); scale.setOnClickListener(new AnimationClickListener(AnimationType.Scale)); Button translate = (Button)findViewById(R.id.Translate); translate.setOnClickListener(new AnimationClickListener(AnimationType.Translate)); Button complex = (Button)findViewById(R.id.Complex); complex.setOnClickListener(new AnimationClickListener(AnimationType.Complex)); } // create a listener inner class class AnimationClickListener implements OnClickListener{ private AnimationType animationType; public AnimationClickListener(AnimationType animType){ animationType = animType; } public void onClick(View v) { // TODO Auto-generated method stub switch (animationType) { case Alpha: //Alpha animation. repeat 5 times, last for 1 mins AlphaAnimation alphaAnimation = (AlphaAnimation)AnimationUtils.loadAnimation(AnimationDemoActivity.this, R.anim.alpha); imageView.startAnimation(alphaAnimation); break; case Rotate: //rotate animation RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation.setDuration(3000); rotateAnimation.setRepeatCount(3); //start animation imageView.startAnimation(rotateAnimation); break; case Scale: //scale animation ScaleAnimation scaleAnimation = new ScaleAnimation(1, 1.5f, 1, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(3000); scaleAnimation.setRepeatCount(3); //start animation imageView.startAnimation(scaleAnimation); break; case Translate: //translate animation TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2); translateAnimation.setDuration(3000); translateAnimation.setRepeatCount(3); //start animation imageView.startAnimation(translateAnimation); break; case Complex: //four animation overlap AnimationSet sets = new AnimationSet(false); AlphaAnimation _animation1 = new AlphaAnimation(1f, 0.1f); _animation1.setDuration(3000); RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation1.setDuration(3000); ScaleAnimation scaleAnimation1 = new ScaleAnimation(1, 1.5f, 1, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation1.setDuration(3000); TranslateAnimation translateAnimation1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2); translateAnimation1.setDuration(3000); sets.addAnimation(_animation1); sets.addAnimation(rotateAnimation1); sets.addAnimation(scaleAnimation1); sets.addAnimation(translateAnimation1); imageView.startAnimation(sets); break; default: break; } } } }
Create Layout.xml
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"fill_parent"
android:layout_height=
"wrap_content"
android:text=
"@string/hello"
/>
<ImageView
android:id=
"@+id/imageView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/qa"
/>
<Button
android:id=
"@+id/Alpha"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Alpha"
/>
<Button
android:id=
"@+id/Rotate"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Rotate"
/>
<Button
android:id=
"@+id/Scale"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Scale"
/>
<Button
android:id=
"@+id/Translate"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Translate"
/>
<Button
android:id=
"@+id/Complex"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Complex"
/>
</LinearLayout>
create alpha.xml resource file
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<alpha
android:fromAlpha=
"1"
android:toAlpha=
"0.3"
android:duration=
"2000"
android:repeatCount=
"3"
>
</alpha>
No comments:
Post a Comment