如何使用动画加载GridView?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用动画加载GridView?相关的知识,希望对你有一定的参考价值。

我正在尝试GridView上的动画类似于这个http://framerjs.com/examples/preview/#delayed-animations.framer。我在GridView上尝试了slideUp动画,但所有列都在同一点移动。我需要它类似于上面的链接。

答案

使用GridLayoutAnimationController进行网格项动画。

Animation animation = AnimationUtils.loadAnimation(getContext(),R.anim.grid_item_anim);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);

grid_item_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
    android:duration="1000"
    android:fromYDelta="100%p"
    android:interpolator="@android:anim/linear_interpolator"
    android:toYDelta="0%p" />
</set>

在网格视图布局中将动画布局更改添加为true

android:animateLayoutChanges="true"
另一答案

在“res”下创建一个名为“anim”的文件夹,在“anim”里面创建一个名为animation_move.xml的xml文件(可以是任何名称)。这个应用程序在GridView中使用了一些动画.Social Stickers

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

    <translate
    android:duration="5000"
    android:fromYDelta="0%p"
    android:interpolator="@android:anim/cycle_interpolator"
    android:toYDelta="100%p" />

</set>

并在您的适配器类中,进行初始化

Animation animation = AnimationUtils.loadAnimation(context, R.anim.animation_move);

在getview函数中,假设您正在使用图像

picture = (ImageView) v.getTag(R.id.picture);
picture.setImageResource(item.drawableId);
picture.startAnimation(animation);

你的getview函数可能不同,但这段代码会给你提示。

以上是关于如何使用动画加载GridView?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用事件侦听器来加载动画片段的循环

如何从片段中检索gridview中的图像?

如何在选项卡片段内调用gridView适配器

如何在 BackStack 上反转片段动画?

VSCode自定义代码片段——CSS动画

VSCode自定义代码片段7——CSS动画