转载自:http://www.devdiv.com/forum.php?mod=viewthread&tid=88416&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1

 

在帧动画结束的时候,如何让他消失呢?android提供了击中巧妙的方法:
一般使用帧动画的过程如下:

  1. ImageView iv = (ImageView)findViewById(R.id.iv);
  2. iv.setBackGroundDrawable(R.id.frametest);
  3. AnimationDrawable ad = (AnimationDrawable)iv.getBackGroundDrawabe();
  4. ad.start();
复制代码
上面的代码在帧动画结束的时候会保持帧动画的最后一帧。如何让他在结束的时候消失呢?
当然可以写Listener来监听帧动画的结束事件了。不过这种实现方式不准确。
其实只需要在animation-list中最后增加一个item
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  3.         android:oneshot="true">
  4.         <item android:drawable="@drawable/d1" android:duration="100" />
  5.         <item android:drawable="@drawable/d2" android:duration="100" />
  6.         <item android:drawable="@drawable/d3" android:duration="100" />
  7.         <item android:drawable="@drawable/d4" android:duration="100" />
  8.         <item android:drawable="@drawable/d5" android:duration="100" />
  9.         <item android:drawable="@drawable/d6" android:duration="100" />
  10.         <item android:drawable="@android:id/empty" android:duration="100" />
  11. </animation-list>
复制代码
@android:id/empty 将ImageView的BackGroundResource 的id 设置为空就ok了。

这是刚摸索的一点小技巧,跟大家分享下。