Android 实现ListView的展开式动画ExpandAnimation

本文介绍了如何在Android中模仿《去哪儿旅行》和《酷狗音乐》的ListView展开收缩动画,详细讲解了dimens.xml的重要性,提供了自定义ExpandAnimation类及Activity文件的代码示例。
摘要由CSDN通过智能技术生成
Android 实现ListView的展开式动画ExpandAnimation
这些效果在《去哪儿旅行app》和《酷狗音乐app》被广泛使用,我们这里模仿ListView的展开收缩式动画
推荐个薅羊毛交流群,帮助大家日常赚点零花钱 364739778,不要指望这个发财哦

这里写图片描述
好了,上代码

dimens.xml,这里是重点,因为下滑的前提是,尺寸必须是已知的,否则无法正常下滑
<dimen name="bottom_item_height">50dip</dimen>
<!--防止布局bug,所以需要设置一个数值区间大于bottom_item_height的复数-->
<dimen name="_bottom_item_height">-50.5dip</dimen>

在这里我没有写ListView布局文件,直接用当前类继承ListActivity(下面会贴代码)

listview_item.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dip"
            android:orientation="horizontal"
            android:paddingLeft="15dip"
            android:paddingRight="15dip" >

            <TextView
                android:id="@+id/song_id_title_tv"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:text="一片艳阳天"
                android:textColor="#333333"
                android:textSize="18sp" />

            <ImageView
                android:id="@+id/song_id_switcher_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:padding="8dp"
                android:scaleType="center"
                android:src="@drawable/sign_animation_sapling01" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/song_id_panel_li"
            android:layout_width="match_parent"
            android:layout_height="@@dimen/bottom_item_height"
            android:layout_marginBottom
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值