android 动画api

来源:互联网 发布:excel数据匹配 编辑:程序博客网 时间:2024/05/07 09:11

android动画分几种?

答:两种;

逐帧动画和补间动画。

逐帧动画,连续而快速地显示一个时间序列。

补间动画,对一副图像施用简单的变换,例如旋转,淡入淡出,平移等。

demo1 逐帧动画

package com.androidbook.shapeshifter;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;public class FrameAnimationActivity extends Activity { AnimationDrawable mframeAnimation = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.framebyframe);     // Handle Start Buttonfinal Button onButton = (Button) findViewById(R.id.ButtonStart);onButton.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {startAnimation();}});// Handle Stop Buttonfinal Button offButton = (Button) findViewById(R.id.ButtonStop);offButton.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {stopAnimation();}});    }private void startAnimation(){ ImageView img = (ImageView)findViewById(R.id.ImageView_Juggle);  BitmapDrawable frame1 = (BitmapDrawable)getResources().getDrawable(R.drawable.splash1);  BitmapDrawable frame2 = (BitmapDrawable)getResources().getDrawable(R.drawable.splash2);  BitmapDrawable frame3 = (BitmapDrawable)getResources().getDrawable(R.drawable.splash3);   // Get the background, which has been compiled to an AnimationDrawable object. int reasonableDuration = 250;     mframeAnimation = new AnimationDrawable();     mframeAnimation.setOneShot(false);// loop continuously     mframeAnimation.addFrame(frame1, reasonableDuration);     mframeAnimation.addFrame(frame2, reasonableDuration);     mframeAnimation.addFrame(frame3, reasonableDuration);          img.setBackgroundDrawable(mframeAnimation);          mframeAnimation.setVisible(true,true);     mframeAnimation.start();}private void stopAnimation(){mframeAnimation.stop();mframeAnimation.setVisible(false,false);}}


demo2 补间动画

package com.example.animationdemo;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// AnimationDrawable juggle = (AnimationDrawable) getResources()// .getDrawable(R.drawable.juggle);ImageView img = (ImageView) findViewById(R.id.img);// img.setBackgroundDrawable(juggle);Animation alpha = AnimationUtils.loadAnimation(this, R.anim.alpha);img.startAnimation(alpha);}}
动画文件

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><alpha android:fromAlpha="0.2" android:toAlpha="1.0"android:duration="3000" /></set>


0 0