public class MainActivity extends AppCompatActivity {
private ImageView iv;
private AnimationDrawable anim;
Handler handler= new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
switch (msg.what){
case 1:
anim.stop();
iv.setImageResource(R.drawable.animation_repeat);
anim = (AnimationDrawable) iv.getDrawable();
anim.start();
}
return false;
}
});
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.anim);
//开始的出现动画
iv.setImageResource(R.drawable.animation_once);
anim = (AnimationDrawable) iv.getDrawable();
anim.stop();
anim.start();
//计算第一段动画的时间,等待结束一次后开始第二段动画
//一直循环的动画
int duration = 0;
for(int i=0;i<anim.getNumberOfFrames();i++){
duration += anim.getDuration(i);
}
Message message =new Message();
message.what=1;
handler.sendMessageDelayed(message,duration);
//点击切换成其他的动画
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iv.setImageResource(R.drawable.animation_switch);
anim = (AnimationDrawable) iv.getDrawable();
anim.stop();
anim.start();
}
});
}
}