Android(安卓)Animation Tween动画效果的使用
16lz
2021-01-24
Animation Tween动画可以通过java代码实现,也可以通过xml布局来实现
1.通过java代码实现:
2.通过xml布局实现:
1.通过java代码实现:
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: [email protected] * @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();}@Overrideprotected 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);}}
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); }@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {return gv.onKeyDown(keyCode, event);} }
2.通过xml布局实现:
<?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>
<?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>
<?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>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><rotateandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromDegrees="0" android:toDegrees="+360" android:pivotX="50%"android:pivotY="50%" android:duration="3000"></rotate></set>
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.AnimationUtils;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: [email protected] * @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;private Context mContext = null;public GameView(Context context) {super(context);mContext = context;mBitmap = ((BitmapDrawable) this.getResources().getDrawable(R.drawable.img)).getBitmap();}@Overrideprotected 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);mAlphaAnimation = AnimationUtils.loadAnimation(mContext, R.anim.alpha);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);mScaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale);this.startAnimation(mScaleAnimation);break;case KeyEvent.KEYCODE_DPAD_LEFT://mTranslateAnimation = new TranslateAnimation(0, 100, 0, 100);// 移动//mTranslateAnimation.setDuration(2000);mTranslateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.translate);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);mRotateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate);this.startAnimation(mRotateAnimation);break;default:break;}return super.onKeyDown(keyCode, event);}}
更多相关文章
- android学习记录
- android pinch:双指缩放图片和单指拖拽
- Android(安卓)TabHost 选项卡 滑动activity进行切换选项卡
- android 设置控件 圆角
- 超级简单的Google VR SDK播放VR视频
- Android上图片压缩方式
- Android从相册选择一个图片、剪切、上传
- android实现通知栏透明
- Android学习(10) -- 常见布局