【问题标题】:Get Animator for LayoutTransition from R.anim XML从 R.anim XML 获取 Animator for LayoutTransition
【发布时间】:2014-05-17 16:31:19
【问题描述】:

我已经搜索了一段时间,似乎找不到任何关于这个主题的有用信息。是否可以将 LayoutTransition 的动画设置为 XML 中声明的动画?默认动画将淡化从 ViewGroup 添加或删除的视图,并相应地移动其他视图,但我想让视图滑入或滑出到一侧。我尝试了以下方法从 Animation 对象设置 Animator,但它似乎没有做任何事情。我只是设置了我发现在这两种类型中常见的字段,但我真的不知道我在用动画做什么。

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setLayoutTransition() {
    LayoutTransition transition = new LayoutTransition();

    Animation appearing = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
    Animator aa = transition.getAnimator(LayoutTransition.APPEARING);
    aa.setDuration(appearing.getDuration());
    aa.setInterpolator(appearing.getInterpolator());

    Animation disappearing = AnimationUtils.loadAnimation(context, android.R.anim.slide_out_right);
    Animator bb = transition.getAnimator(LayoutTransition.DISAPPEARING);
    bb.setDuration(disappearing.getDuration());
    bb.setInterpolator(disappearing.getInterpolator());

    transition.setAnimator(LayoutTransition.APPEARING, aa);
    transition.setAnimator(LayoutTransition.DISAPPEARING, bb);

    dashboardLayout.setLayoutTransition(transition);
}

【问题讨论】:

    标签: android animation android-animation layouttransition


    【解决方案1】:

    不,你不能。实际上,AnimationAnimator 是 API 的不同部分,针对的任务略有不同。

    Animators 用于值动画,Animations 用于视图动画。因此,Animator 可以为对象的任何属性设置动画,但您必须指定内容和方式。 Animations 不太灵活,但有一些现成的视图配方。

    因此,在您的情况下,您可以从头开始定义Animators,也可以在涉及布局更改的视图上手动启动Animations——后者是可能的,但我觉得它会比前者带来更多麻烦.

    使用Animators,您也可以在.xml 文件中轻松定义它们,这里是all about it

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      相关资源
      最近更新 更多