Android开发--图形图像与动画(四)--AnimationListener简介

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

     就像Button控件有监听器一样,动画效果也有监听器,只需要实现AnimationListener就可以实现对动画效果的监听,其中需要重载三个函数,就是下面的这几个函数:

private class MyListenr implements AnimationListener{  @Override  public void onAnimationEnd(Animation arg0) {   // TODO Auto-generated method stub  }  @Override  public void onAnimationRepeat(Animation arg0) {   // TODO Auto-generated method stub  }  @Override  public void onAnimationStart(Animation arg0) {   // TODO Auto-generated method stub  }   }
其中第一个函数的意思是在动画执行完之后需要开发者做什么,第二个函数的意思是在动画重复执行的过程中应该做什么,第三个函数的意思是当动画开始执行时有什么动作发生。

下面我实现了一个例子,点击删除按钮,图片慢慢淡去,并最终删除,当点击添加按钮时向viewGroup中添加一个imageview,实现的截图如下:


具体的实现代码如下:

public class MainActivity extends Activity private Button button; private Button button2; private ImageView imageView; private ViewGroup viewGroup; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  button=(Button)findViewById(R.id.button_add);  button2=(Button)findViewById(R.id.button_delete);  imageView=(ImageView)findViewById(R.id.imageView1);  viewGroup=(ViewGroup)findViewById(R.id.viewGroup);  button.setOnClickListener(new Mybutton());  button2.setOnClickListener(new Mybutton()); } private class Mybutton implements OnClickListener{  @Override  public void onClick(View v) {   // TODO Auto-generated method stub   switch (v.getId()) {   case R.id.button_add:    Add();    break;   case R.id.button_delete:    Delete();    break;   default:    break;   }  } }  public void Add() {  AlphaAnimation alphaAnimation=new AlphaAnimation(0.0f, 1.0f);  alphaAnimation.setDuration(2000);  alphaAnimation.setStartOffset(500);  ImageView imageViewAdd=new ImageView(MainActivity.this);  imageViewAdd.setImageResource(R.drawable.ic_launcher);  viewGroup.addView(imageViewAdd);//  viewGroup.addView(imageViewAdd, new LayoutParams(//    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));  imageViewAdd.startAnimation(alphaAnimation); } public void Delete() {  AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f, 0.0f);  alphaAnimation.setDuration(2000);  alphaAnimation.setStartOffset(500);  imageView.startAnimation(alphaAnimation);  alphaAnimation.setAnimationListener(new MyListenr()); }  private class MyListenr implements AnimationListener{  @Override  public void onAnimationEnd(Animation arg0) {   // TODO Auto-generated method stub   viewGroup.removeView(imageView);   Log.d("BruceZhang", "Animation End!");  }  @Override  public void onAnimationRepeat(Animation arg0) {   // TODO Auto-generated method stub   Log.d("BruceZhang", "Animation Repeat!");  }  @Override  public void onAnimationStart(Animation arg0) {   // TODO Auto-generated method stub   Log.d("BruceZhang", "Animation Start!");  }   } @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.activity_main, menu);  return true; }}

此实例的布局文件如下,注意,需要在根标签下给出viewGroup的id:

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"     android:id="@+id/viewGroup"    >        <Button        android:id="@+id/button_add"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_x="0dp"        android:layout_y="367dp"        android:text="添加图片" />    <Button        android:id="@+id/button_delete"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_x="0dp"        android:layout_y="410dp"        android:text="删除图片" />    <ImageView        android:id="@+id/imageView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_x="153dp"        android:layout_y="155dp"        android:src="@drawable/ic_launcher" /></AbsoluteLayout>


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值