您可以做两件事来添加动画,首先可以让android为您设置布局动画。这样,每次您更改布局中的某些内容(例如更改视图可见性或视图位置)时,android都会自动创建淡入淡出/过渡动画。要使用那套
android:animateLayoutChanges="true"
在布局的根节点上。
您的第二个选择是手动添加动画。为此,我建议您使用Android 3.0(Honeycomb)中引入的新动画API。我可以举几个例子:
这淡出了
View:
view.animate().alpha(0.0f);
这使它淡入:
view.animate().alpha(1.0f);
这会将
View其高度向下移动:
view.animate().translationY(view.getHeight());
将
View其移动到其他位置后,它将返回到其初始位置:
view.animate().translationY(0);
您也可以使用
setDuration()设置动画的持续时间。例如,这会
View在2秒内逐渐消失:
view.animate().alpha(0.0f).setDuration(2000);
而且,您可以根据需要组合任意数量的动画,例如,它会淡出a
View并在0.3秒内将其同时向下移动:
view.animate() .translationY(view.getHeight()) .alpha(0.0f) .setDuration(300);
您还可以为动画分配一个侦听器,并对各种事件做出反应。就像动画开始时,动画结束时或重复时一样。通过使用抽象类,
AnimatorListenerAdapter您不必
AnimatorListener一次实现所有的回调,而只需实现所需的那些。这使代码更具可读性。例如,以下代码淡出并
View在0.3秒(300毫秒)的时间内将其向下移动高度,动画完成后,其可见性设置为
View.GONE。
view.animate() .translationY(view.getHeight()) .alpha(0.0f) .setDuration(300) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); view.setVisibility(View.GONE); } });


