为什么我的ListView没有动画?

时间:2012-09-08 10:21:28

标签: android android-animation

伙计我制作了一个自定义列表视图,列表视图有三个文本字段。我希望以下内容能够工作,当用户从刚刚填充文本视图的活动中按下后退按钮时,他返回到包含自定义列表视图的活动。最近刚刚进入的条目已经存在。每当用户进入列表视图活动时,我希望条目从右侧滑入。这是列表视图的代码xml:


    <LinearLayout
    android:id="@+id/listHolder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:background="#ffffff" >

    <ListView
        android:id="@+id/mylist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>
    </LinearLayout>

这里列表视图实际上没有使用完整的空间,因为其他一些小部件占用了100dp的屏幕大小(但这在这里并不重要)。我正在使用的动画是:


    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

    <scale
    android:duration="1500"
    android:fillAfter="false"
    android:fromXScale="480dp"
    android:fromYScale="0dp"
    android:interpolator="@android:anim/overshoot_interpolator"
    android:pivotX="60"
    android:pivotY="10"
    android:toXScale="100dp"
    android:toYScale="0dp" />

    </set>

aniamtion xml有什么问题?我是否为x和y值设置了错误的参数? 我得到的是列表视图在用户进入该活动一秒或更晚之后出现。我的意思是没有从右到左的过渡。不知道为什么会这样。感谢。

1 个答案:

答案 0 :(得分:1)

你甚至没有将你的动画应用到listview然后你怎么能显示动画!] 你应该将%放入pivotYpivotX 使用此代码:

将其保存为layout_controller.xml文件夹中的anim

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
 android:animation="@anim/rotation"
 android:animationOrder="normal"
 android:delay="10%" />

将此保存为anim文件夹

中的rotation.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromDegrees="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" />

现在将此代码放在yout listView布局文件中:

<LinearLayout
android:id="@+id/listHolder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="#ffffff" >

<ListView
    android:id="@+id/mylist"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layoutAnimation="@anim/list_layout_controller" >
</ListView>
</LinearLayout>

我的意思是我已经在你的布局中添加了这一行,你可以看到它的工作原理..

android:layoutAnimation="@anim/list_layout_controller"