android - 在自定义 ViewGroup 中为 child 设置动画的正确方法

标签 android android-layout android-animation

我正在构建一个自定义的 ViewGroup,它将一群 child 安排在特定的位置。

在特定的触发条件下(比如按下外部按钮),子项会动画到新的位置。我尝试这样做的方法是启动一个计时器,并在每次计时器更新时计算新位置,然后调用 requestLayout()

当我这样做时,动画有点紧张。有没有更有效的方法来做到这一点?

关于自定义重新排列 subview 的正确步骤有什么想法吗?

最佳答案

你应该实现一个 AnimationListener像这样:

Animation anim = AnimationUtils.loadAnimation(R.android.anim.slide_in_left);
anim.setAnimationListener(listener);
view.startAnimation(anim);

private AnimationListener imageViewAnimationListener = new AnimationListener() //
{
    @Override
    public void onAnimationEnd(Animation arg0) //
    {
    }

    @Override
    public void onAnimationRepeat(Animation arg0) //
    {
    }

    @Override
    public void onAnimationStart(Animation arg0) //
    {
    }
};

希望这对您有所帮助!

关于android - 在自定义 ViewGroup 中为 child 设置动画的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151987/

相关文章:

java - 添加到数组列表在 For 循环中不起作用

android - 自定义日期选择器对话框android

类中全局可访问的 Android 对象

java - Activity 不会实例化

android - 使用 RecyclerView 制作基于客户列表适配器 Android 的水平 ListView

android - 带wrap_content的LinearLayout的LayoutTransition

android - OSMDroid PathOverlay 没有出现

android - 直到 UI 更新或触摸事件才开始动画

android - View 立即跳跃和闪烁,虽然 animateLayoutChanges ="true"

java - 如何以编程方式将两个 fragment 添加到布局中?