安卓视图动画+收缩与展开


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


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

希望能有点帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值