最近需求 类似支付宝 余额宝中的一个 视图 根据动画 动态收缩和展开 其实很简单 废话不多说 上代码
头部红色布局 可以理解为三个不同的view
中间布局 显示或隐藏动画
mExpandAnimation = AnimationUtils.loadAnimation(this, R.anim.expand);
mCollapseAnimation = AnimationUtils.loadAnimation(this, R.anim.collapse);
xml代码 expand :
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="0%"
android:toXScale="1.0"
android:toYScale="1.0"
android:fillAfter="true"/>
</set>
collapse:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="0%"
android:toXScale="1.0"
android:toYScale="0.0"
android:fillAfter="true"
/>
</set>
底部布局移动动画
translateIn = new TranslateAnimation(0, 0, 1f, 0f);
translateIn.setDuration(200);
translateIn.setFillAfter(true);
translateOut = new TranslateAnimation(0, 0, 0f, 1f);
translateIn.setDuration(200);
translateIn.setFillAfter(true);
为了动态实现 最主要的是一个监听事件
translateIn.setAnimationListener(new AnimationListener()
在onAnimationEnd方法中 显示or隐藏头部中间布局
希望能有点帮助