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

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

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

2.通过xml布局实现:

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

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

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

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

Java代码 收藏代码
  1. packagecom.Aina.Android;
  2. importandroid.content.Context;
  3. importandroid.graphics.Bitmap;
  4. importandroid.graphics.Canvas;
  5. importandroid.graphics.Paint;
  6. importandroid.graphics.drawable.BitmapDrawable;
  7. importandroid.view.KeyEvent;
  8. importandroid.view.View;
  9. importandroid.view.animation.AlphaAnimation;
  10. importandroid.view.animation.Animation;
  11. importandroid.view.animation.AnimationUtils;
  12. importandroid.view.animation.RotateAnimation;
  13. importandroid.view.animation.ScaleAnimation;
  14. importandroid.view.animation.TranslateAnimation;
  15. /**
  16. *com.Aina.AndroidPro_AnimationTween
  17. *
  18. *@authorAina.huangE-mail:674023920@qq.com
  19. *@version创建时间:2010Jun17,20105:15:36PM类说明
  20. */
  21. publicclassGameViewextendsView{
  22. privatePaintmPaint=null;
  23. privateAnimationmAlphaAnimation=null;
  24. privateAnimationmScaleAnimation=null;
  25. privateAnimationmTranslateAnimation=null;
  26. privateAnimationmRotateAnimation=null;
  27. privateBitmapmBitmap=null;
  28. privateContextmContext=null;
  29. publicGameView(Contextcontext){
  30. super(context);
  31. mContext=context;
  32. mBitmap=((BitmapDrawable)this.getResources().getDrawable(
  33. R.drawable.img)).getBitmap();
  34. }
  35. @Override
  36. protectedvoidonDraw(Canvascanvas){
  37. super.onDraw(canvas);
  38. mPaint=newPaint();
  39. mPaint.setAntiAlias(true);
  40. canvas.drawBitmap(mBitmap,0,0,mPaint);
  41. }
  42. publicbooleanonKeyDown(intkeyCode,KeyEventevent){
  43. switch(keyCode){
  44. caseKeyEvent.KEYCODE_DPAD_UP:
  45. //mAlphaAnimation=newAlphaAnimation(0.1f,1.0f);//透明度
  46. //mAlphaAnimation.setDuration(3000);
  47. mAlphaAnimation=AnimationUtils.loadAnimation(mContext,R.anim.alpha);
  48. this.startAnimation(mAlphaAnimation);
  49. break;
  50. caseKeyEvent.KEYCODE_DPAD_DOWN:
  51. //mScaleAnimation=newScaleAnimation(0.0f,1.0f,0.0f,
  52. //1.0f,//整个屏幕就0.0到1.0的大小//缩放
  53. //Animation.RELATIVE_TO_SELF,0.5f,
  54. //Animation.RELATIVE_TO_SELF,0.0f);
  55. //mScaleAnimation.setDuration(3000);
  56. mScaleAnimation=AnimationUtils.loadAnimation(mContext,R.anim.scale);
  57. this.startAnimation(mScaleAnimation);
  58. break;
  59. caseKeyEvent.KEYCODE_DPAD_LEFT:
  60. //mTranslateAnimation=newTranslateAnimation(0,100,0,100);//移动
  61. //mTranslateAnimation.setDuration(2000);
  62. mTranslateAnimation=AnimationUtils.loadAnimation(mContext,R.anim.translate);
  63. this.startAnimation(mTranslateAnimation);
  64. break;
  65. caseKeyEvent.KEYCODE_DPAD_RIGHT:
  66. //mRotateAnimation=newRotateAnimation(0.0f,360.0f,//旋转
  67. //Animation.RELATIVE_TO_SELF,0.5f,
  68. //Animation.RELATIVE_TO_SELF,0.5f);
  69. //mRotateAnimation.setDuration(3000);
  70. mRotateAnimation=AnimationUtils.loadAnimation(mContext,R.anim.rotate);
  71. this.startAnimation(mRotateAnimation);
  72. break;
  73. default:
  74. break;
  75. }
  76. returnsuper.onKeyDown(keyCode,event);
  77. }
  78. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值