Animation Tween动画可以通过java代码实现,也可以通过xml布局来实现

1.通过java代码实现:
Java代码   收藏代码
  1. package com.Aina.Android;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.Bitmap;  
  5. import android.graphics.Canvas;  
  6. import android.graphics.Paint;  
  7. import android.graphics.drawable.BitmapDrawable;  
  8. import android.view.KeyEvent;  
  9. import android.view.View;  
  10. import android.view.animation.AlphaAnimation;  
  11. import android.view.animation.Animation;  
  12. import android.view.animation.RotateAnimation;  
  13. import android.view.animation.ScaleAnimation;  
  14. import android.view.animation.TranslateAnimation;  
  15.   
  16. /** 
  17.  * com.Aina.Android Pro_AnimationTween 
  18.  *  
  19.  * @author Aina.huang E-mail: [email protected] 
  20.  * @version 创建时间:2010 Jun 17, 2010 5:15:36 PM 类说明 
  21.  */  
  22. public class GameView extends View {  
  23.   
  24.     private Paint mPaint = null;  
  25.     private Animation mAlphaAnimation = null;  
  26.     private Animation mScaleAnimation = null;  
  27.     private Animation mTranslateAnimation = null;  
  28.     private Animation mRotateAnimation = null;  
  29.     private Bitmap mBitmap = null;  
  30.   
  31.     public GameView(Context context) {  
  32.         super(context);  
  33.         mBitmap = ((BitmapDrawable) this.getResources().getDrawable(  
  34.                 R.drawable.img)).getBitmap();  
  35.     }  
  36.   
  37.     @Override  
  38.     protected void onDraw(Canvas canvas) {  
  39.         super.onDraw(canvas);  
  40.         mPaint = new Paint();  
  41.         mPaint.setAntiAlias(true);  
  42.         canvas.drawBitmap(mBitmap, 00, mPaint);  
  43.     }  
  44.   
  45.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  46.         switch (keyCode) {  
  47.         case KeyEvent.KEYCODE_DPAD_UP:  
  48.             mAlphaAnimation = new AlphaAnimation(0.1f, 1.0f);// 透明度  
  49.             mAlphaAnimation.setDuration(3000);  
  50.             this.startAnimation(mAlphaAnimation);  
  51.             break;  
  52.         case KeyEvent.KEYCODE_DPAD_DOWN:  
  53.             mScaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f,  
  54.                     1.0f,// 整个屏幕就0.0到1.0的大小//缩放  
  55.                     Animation.RELATIVE_TO_SELF, 0.5f,  
  56.                     Animation.RELATIVE_TO_SELF, 0.0f);  
  57.             mScaleAnimation.setDuration(3000);  
  58.             this.startAnimation(mScaleAnimation);  
  59.             break;  
  60.         case KeyEvent.KEYCODE_DPAD_LEFT:  
  61.             mTranslateAnimation = new TranslateAnimation(01000100);// 移动  
  62.             mTranslateAnimation.setDuration(2000);  
  63.             this.startAnimation(mTranslateAnimation);  
  64.             break;  
  65.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
  66.             mRotateAnimation = new RotateAnimation(0.0f, 360.0f,//旋转  
  67.                     Animation.RELATIVE_TO_SELF, 0.5f,  
  68.                     Animation.RELATIVE_TO_SELF, 0.5f);  
  69.             mRotateAnimation.setDuration(3000);  
  70.             this.startAnimation(mRotateAnimation);  
  71.             break;  
  72.         default:  
  73.             break;  
  74.         }  
  75.         return super.onKeyDown(keyCode, event);  
  76.     }  
  77. }  


Java代码   收藏代码
  1. package com.Aina.Android;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.KeyEvent;  
  6.   
  7. public class Test_AnimationTween extends Activity {  
  8.     /** Called when the activity is first created. */  
  9.     private GameView gv = null;  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         gv = new GameView(this);  
  14.         this.setContentView(gv);  
  15.     }  
  16.     @Override  
  17.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  18.         return gv.onKeyDown(keyCode, event);  
  19.     }  
  20.       
  21. }  


2.通过xml布局实现:

Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <alpha android:fromAlpha="0.1" android:toAlpha="1.0"  
  4.         android:duration="3000">  
  5.     </alpha>  
  6. </set>  


Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <scale android:fromXScale="0.0" android:toXScale="1.0"  
  4.         android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="50%"  
  5.         android:pivotY="50%" android:fillAfter="false"  
  6.         android:duration="3000">  
  7.     </scale>  
  8. </set>  


Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <translate android:fromXDelta="0" android:toXDelta="100"  
  4.         android:fromYDelta="0" android:toYDelta="100" android:duration="3000">  
  5.     </translate>  
  6. </set>  


Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <rotate  
  4.         android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
  5.         android:fromDegrees="0" android:toDegrees="+360" android:pivotX="50%"  
  6.         android:pivotY="50%" android:duration="3000">  
  7.     </rotate>  
  8. </set>  


Java代码   收藏代码
  1. package com.Aina.Android;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.Bitmap;  
  5. import android.graphics.Canvas;  
  6. import android.graphics.Paint;  
  7. import android.graphics.drawable.BitmapDrawable;  
  8. import android.view.KeyEvent;  
  9. import android.view.View;  
  10. import android.view.animation.AlphaAnimation;  
  11. import android.view.animation.Animation;  
  12. import android.view.animation.AnimationUtils;  
  13. import android.view.animation.RotateAnimation;  
  14. import android.view.animation.ScaleAnimation;  
  15. import android.view.animation.TranslateAnimation;  
  16.   
  17. /** 
  18.  * com.Aina.Android Pro_AnimationTween 
  19.  *  
  20.  * @author Aina.huang E-mail: [email protected] 
  21.  * @version 创建时间:2010 Jun 17, 2010 5:15:36 PM 类说明 
  22.  */  
  23. public class GameView extends View {  
  24.   
  25.     private Paint mPaint = null;  
  26.     private Animation mAlphaAnimation = null;  
  27.     private Animation mScaleAnimation = null;  
  28.     private Animation mTranslateAnimation = null;  
  29.     private Animation mRotateAnimation = null;  
  30.     private Bitmap mBitmap = null;  
  31.     private Context mContext = null;  
  32.     public GameView(Context context) {  
  33.         super(context);  
  34.         mContext = context;  
  35.         mBitmap = ((BitmapDrawable) this.getResources().getDrawable(  
  36.                 R.drawable.img)).getBitmap();  
  37.     }  
  38.   
  39.     @Override  
  40.     protected void onDraw(Canvas canvas) {  
  41.         super.onDraw(canvas);  
  42.         mPaint = new Paint();  
  43.         mPaint.setAntiAlias(true);  
  44.         canvas.drawBitmap(mBitmap, 00, mPaint);  
  45.     }  
  46.   
  47.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  48.         switch (keyCode) {  
  49.         case KeyEvent.KEYCODE_DPAD_UP:  
  50. //          mAlphaAnimation = new AlphaAnimation(0.1f, 1.0f);// 透明度  
  51. //          mAlphaAnimation.setDuration(3000);  
  52.             mAlphaAnimation = AnimationUtils.loadAnimation(mContext, R.anim.alpha);  
  53.             this.startAnimation(mAlphaAnimation);  
  54.             break;  
  55.         case KeyEvent.KEYCODE_DPAD_DOWN:  
  56. //          mScaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f,  
  57. //                  1.0f,// 整个屏幕就0.0到1.0的大小//缩放  
  58. //                  Animation.RELATIVE_TO_SELF, 0.5f,  
  59. //                  Animation.RELATIVE_TO_SELF, 0.0f);  
  60. //          mScaleAnimation.setDuration(3000);  
  61.             mScaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale);  
  62.             this.startAnimation(mScaleAnimation);  
  63.             break;  
  64.         case KeyEvent.KEYCODE_DPAD_LEFT:  
  65. //          mTranslateAnimation = new TranslateAnimation(0, 100, 0, 100);// 移动  
  66. //          mTranslateAnimation.setDuration(2000);  
  67.             mTranslateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.translate);  
  68.             this.startAnimation(mTranslateAnimation);  
  69.             break;  
  70.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
  71. //          mRotateAnimation = new RotateAnimation(0.0f, 360.0f,//旋转  
  72. //                  Animation.RELATIVE_TO_SELF, 0.5f,  
  73. //                  Animation.RELATIVE_TO_SELF, 0.5f);            
  74. //          mRotateAnimation.setDuration(3000);  
  75.             mRotateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate);  
  76.             this.startAnimation(mRotateAnimation);  
  77.             break;  
  78.         default:  
  79.             break;  
  80.         }  
  81.         return super.onKeyDown(keyCode, event);  
  82.     }  


你可能感兴趣的:(java,xml,android,animation,encoding,2010)