GitHub 地址:http://blog.csdn.net/xiangyong_1521/article/details/77888295
由于最近在赶公司项目,闲余时间不是很充沛,本节就实现一个简单的动画吧。 说到淡入淡出动画,首先想到补间动画里面的AlphaAnimation,不过这个深浅动画只能对透明度做渐变效果,也就是只能对一个图形做深浅的颜色变换。如果我们想要从A图片逐渐变为B图片,也就是要实现淡入淡出(Fade-in and Fade-out)效果时,TransitionDrawable就派上用场了。
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
private ImageView iv_alpha;
private AlphaAnimation alphaAnimation;
private TransitionDrawable transitionDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_play1 = (Button) findViewById(R.id.btn_play1);
Button btn_play2 = (Button) findViewById(R.id.btn_play2);
btn_play1.setOnClickListener(this);
btn_play2.setOnClickListener(this);
iv_alpha = (ImageView) findViewById(R.id.iv_alpha);
//一开始先设置透明,这样图片不会显示,等点击按钮时再显示
iv_alpha.setAlpha(0.0f);
alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(3000); //深浅动画持续时间
alphaAnimation.setFillAfter(true); //动画结束时保持结束的画面
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_play1) {
iv_alpha.setImageResource(R.drawable.alpha_begin);
iv_alpha.setAlpha(1.0f);
iv_alpha.setAnimation(alphaAnimation);
alphaAnimation.start();
} else if (v.getId() == R.id.btn_play2) {
//淡入淡出动画需要先设置一个Drawable数组,用于变换图片
Drawable[] drawableArray = {
getResources().getDrawable(R.drawable.alpha_begin),
getResources().getDrawable(R.drawable.alpha_end)
};
transitionDrawable = new TransitionDrawable(drawableArray);
iv_alpha.setImageDrawable(transitionDrawable);
transitionDrawable.startTransition(3000);
}
}
}
交作业,睡觉