android中的动画之变化动画事例1

博观而约取,厚积而薄发。这篇文章主要讲述android中的动画之变化动画事例1相关的知识,希望能为你提供帮助。
前面我已经说了变换动画,并且变换动画中分为4种情况:透明度动画、旋转动画、缩放动画、位移动画。
今天我来说说关于使用变换动画中的4种类型来实现它们的糅合。
我在这里主要使用了一个Animation对象中的一个监听方法--setAnimationListener。这个方法里面只有一个参数,安卓api给出的这个方法的完整形态--
void android.view.animation.Animation.setAnimationListener(AnimationListener listener)。从中我们可以知道,这个参数需要传递一个AnimationListener 类型的参数,我们只需要使用匿名内部类来即可(这里我的要求简单,所以使用的是匿名内部类)。 当我们使用了匿名内部类后,会出现三个方法。代码如下 java代码

1animation1.setAnimationListener(new AnimationListener() { 2//当动画开始时调用 3public void onAnimationStart(Animation animation) { 4// TODO Auto-generated method stub 5 6} 7//当动画重复时调用 8public void onAnimationRepeat(Animation animation) { 9// TODO Auto-generated method stub 10 11} 12//当动画开始时调用 13public void onAnimationEnd(Animation animation) { 14// TODO Auto-generated method stub 15imageview.startAnimation(animation2); 16} 17});

其中方法animation1和animation2都是Animation对象。
看到这里我们应该怎么实现了吧,话不多说,直接贴完整的代码
anim文件下的xml代码
1.alpha.xml代码(animation1加载的)
1 < ?xml version="1.0" encoding="utf-8"?> 2 < set xmlns:android="http://schemas.android.com/apk/res/android"> 3< alpha 4android:duration="1000" 5android:fromAlpha="0.1" 6android:toAlpha="1.0" 7/> 8 < /set>

2.translate.xml代码
1 < ?xml version="1.0" encoding="utf-8"?> 2 < set xmlns:android="http://schemas.android.com/apk/res/android" > 3 4< translate 5android:duration="1000" 6android:fromXDelta="10" 7android:fromYDelta="10" 8android:toXDelta="100" 9android:toYDelta="100" /> 10 11 < /set>

 
布局文件代码
【android中的动画之变化动画事例1】xml代码
1< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2xmlns:tools="http://schemas.android.com/tools" 3android:layout_width="match_parent" 4android:layout_height="match_parent" 5android:orientation="vertical" 6tools:context="com.example.Tween_Animation.Alpha_MainActivity" > 7 8< Button 9android:id="@+id/button_scale" 10android:layout_width="fill_parent" 11android:layout_height="wrap_content" 12android:text="@string/button_stringScaleAnimation" /> 13 14< LinearLayout 15android:gravity="center" 16android:layout_width="fill_parent" 17android:layout_height="fill_parent" 18android:orientation="vertical" > 19 20< ImageView 21android:id="@+id/imageview_scale" 22android:layout_width="wrap_content" 23android:layout_height="wrap_content" 24android:src="https://www.songbingjia.com/android/@drawable/ic_launcher" /> 25< /LinearLayout> 26 27 < /LinearLayout>

activity代码
JAVA代码
1 package com.example.Demo1; 2 3 4 5 import com.example.androidanimation.R; 6 7 import android.app.Activity; 8 import android.os.Bundle; 9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.view.animation.Animation; 12 import android.view.animation.Animation.AnimationListener; 13 import android.view.animation.AnimationUtils; 14 import android.widget.Button; 15 import android.widget.ImageView; 16 /* 17* 组合动画 18* 先播放一个动画然后再播放一个动画 19*/ 20 public class MainActivity extends Activity implements OnClickListener{ 21private Button button = null; 22private ImageView imageview = null; 23 24protected void onCreate(Bundle savedInstanceState) { 25super.onCreate(savedInstanceState); 26setContentView(R.layout.activity_main); 27button = (Button) findViewById(R.id.button_scale); 28imageview = (ImageView) findViewById(R.id.imageview_scale); 29button.setText("组合动画1"); 30button.setOnClickListener(this); 31} 32public void onClick(View v) { 33Animation animation1 = AnimationUtils.loadAnimation(this, R.anim.alpha); 34imageview.startAnimation(animation1); 35final Animation animation2 = AnimationUtils.loadAnimation(this, R.anim.translate); 36animation1.setAnimationListener(new AnimationListener() { 37//当动画开始时调用 38public void onAnimationStart(Animation animation) { 39// TODO Auto-generated method stub 40 41} 42//当动画重复时调用 43public void onAnimationRepeat(Animation animation) { 44// TODO Auto-generated method stub 45 46} 47//当动画开始时调用 48public void onAnimationEnd(Animation animation) { 49// TODO Auto-generated method stub 50imageview.startAnimation(animation2); 51} 52}); 53} 54 }

这里只是实现了两种类型的动画来完成效果,其实我们可以多种多样,看自己的需要了。
 

    推荐阅读