今天给大家分享一个可以用来做倒计时的动画....下期开始准备写几篇动画的详细解释,毕竟授人以鱼不如授人以渔
接下来还是先上效果图
熟悉动画的人相信心中已经有了想法。。其实这个动画就是Alpha动画和Scale动画结合在一起
<set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" /> <scale android:duration="800" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.5" android:toYScale="0.5" /> </set>
private TextView textView; private Animation animation; private Animation animation2; private int count = 30; private Button btnSwitch; private int flag = 0; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.text); animation = AnimationUtils.loadAnimation(this, R.anim.animation_text2); animation2 = AnimationUtils.loadAnimation(this, R.anim.animation_text); btnSwitch = (Button) findViewById(R.id.btn_switch); btnSwitch.setOnClickListener(this); textView.startAnimation(animation); handler.sendEmptyMessageDelayed(0, 1000); } public void small() { animation2.reset(); textView.startAnimation(animation2); } public void big() { animation.reset(); textView.startAnimation(animation); } private int getCount() { count--; if (count < 0 || count > 30) { count = 30; } return count; } Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { if (msg.what == 0) { textView.setText("" + getCount()); handler.sendEmptyMessageDelayed(0, 1000); small(); } else { textView.setText("" + getCount()); handler.sendEmptyMessageDelayed(1, 1000); big(); } }; }; @Override public void onClick(View arg0) { switch (flag) { case 0: handler.removeMessages(0); handler.sendEmptyMessageDelayed(1, 1000); flag = 1; break; case 1: handler.removeMessages(1); handler.sendEmptyMessageDelayed(0, 1000); flag = 0; break; default: break; } }
原文地址:http://blog.csdn.net/u014163726/article/details/40895673