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