繁体   English   中英

Android动画只能播放一次?

[英]Android animation only works once?

所以我想同时做2个动画,一个移动文本视图,一个显示线性布局(也2个动画来隐藏它们)。 我有另一个动画正在按计划显示/隐藏单独的布局。 当我执行显示带有2个动画的视图时,它只能工作一次,它可以很好地隐藏,但随后又无法工作了。 然后,当我显示另一个视图时,它将播放所有3个动画(并非预期)。 我不知道为什么会这样? 当我尝试显示2个动画时,它什么也不做,但是当我尝试其他显示视图时,就像将其添加到队列中并显示所有3个动画一样。

我用于启动两个动画的代码:

        LinearLayout layoutMsgs = (LinearLayout)findViewById(R.id.layoutMsgs);
        Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.msgs_show);
        anim.setAnimationListener(new AnimListener(layoutMsgs, View.VISIBLE)); // sets visibility on animation end
        layoutMsgs.startAnimation(anim);

        TextView tvMsgs = (TextView)findViewById(R.id.tvMsgs);
        Animation tvAnim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.tvmsgs_show);
        tvMsgs.startAnimation(tvAnim);

隐藏两个动画的代码:

    LinearLayout layoutMsgs = (LinearLayout)findViewById(R.id.layoutMsgs);
    Animation animLayout = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.msgs_hide);
    animLayout.setAnimationListener(new AnimListener(layoutMsgs, View.INVISIBLE));
    layoutMsgs.startAnimation(animLayout);

    TextView tvMsgs = (TextView)findViewById(R.id.tvMsgs);
    Animation animMsgs = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.tvmsgs_hide);

    tvMsgs.startAnimation(animMsgs);

然后这是另一个效果很好的动画,它只是一个动画,没有textView,只是一个布局

        LinearLayout pokeLayout = (LinearLayout)findViewById(R.id.layoutPokes);
        Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.poke_show);
        anim.setAnimationListener(new AnimListener(pokeLayout, View.VISIBLE));
        pokeLayout.startAnimation(anim);

那么我该如何解决呢? 抱歉,如果我的解释不好,我很难解释所有细节,请索取所有丢失的信息。

通过使用本文中的解决方案来解决Android:使用ObjectAnimator转换具有View维度的分数值的View

并不是很漂亮,因为我必须为需要移动的每个视图创建单独的X转换和Y转换文件。最终得到了15个动画文件。 仍然想知道是否有更好的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM