先看效果:
这部分从底部慢慢显示出来
只需两步即可实现此类效果:
- 在res中创建文件夹anim,里面放动画效果xml文件
duration - 动画执行多长时间
fromXDelta - X轴方向开始位置,可以是%(自身控件为100%),也可以是像素
toXDelta - X轴方向结束位置,可以是%(自身控件为100%),也可以是像素
fromYDelta - Y轴方向开始位置,可以是%(自身控件为100%),也可以是像素
toYDelta - Y轴方向结束位置,可以是%(自身控件为100%),也可以是像素
startOffset - 延迟多长时间后才开始动画
还有两个属性:
fillBefore 和 fillAfter 这里不进行介绍,只说亲测效果
首先这两个属性放在 set 标签内 ; translate 内无效果
fillBefore 默认属性,显示(由GONE到VISIBLE),隐藏后(由VISIBLE到GONE)消失
fillAfter 显示(由GONE到VISIBLE),隐藏后(由VISIBLE到GONE)不消失,就在最后位置停留显示
隐藏 bottom_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="0"
android:toYDelta="100%"/>
</set>
显示 bottom_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="100%"
android:toYDelta="0" />
</set>
- 添加动画,预先控件就在你想要的位置,先隐藏掉 visibility=“gone”
然后在显示出来,反之同理
Animation animBottomOut = AnimationUtils.loadAnimation(Activity.this,R.anim.bottom_out);
//animBottomOut.setDuration(240);//动态设置多长时间,xml里面设置了,这里就不要写了
view(你要添加效果的控件).setVisibility(VISIBLE);
view(你要添加效果的控件).startAnimation(animBottomOut);