[置顶] 安卓视图动画+收缩与展开

[置顶] 安卓视图动画+收缩与展开_第1张图片[置顶] 安卓视图动画+收缩与展开_第2张图片

最近需求 类似支付宝 余额宝中的一个 视图 根据动画 动态收缩和展开    其实很简单  废话不多说   上代码


头部红色布局  可以理解为三个不同的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隐藏头部中间布局

希望能有点帮助

你可能感兴趣的:(动画,安卓,布局,视图收缩,视图展开)