2

我正在android中开发一个游戏,在完成每个级别后,会显示一个结果活动,显示用户的分数,并根据该分数给出星星。现在,在那个 Result 活动上,有3灰色星星的图像视图,以及我想用动画金色星星显示的那些。但是在播放动画时,灰色的星星被隐藏了,只有金色的星星似乎在移动并被放置在隐藏的灰色星星上。我想知道我怎样才能让最左边的灰色星星一直可见,直到一颗金色的星星出现并坐在它上面

问题:金色的星星来了,坐在看不见的灰色星星上,但灰色的星星本来应该是可见的,直到金色的星星来了,完全安顿下来

在此处输入图像描述

问题:最左边的星星在动画开始时变得不可见。

在此处输入图像描述

Java 代码:

Myanim1 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha_scale_left);
starIv1=(ImageView)findViewById(R.id.starGrey1ImageView);

starIv1.clearAnimation();
starIv1.setImageResource(R.drawable.star);
starIv1.startAnimation(Myanim1);

动画-xml

<translate
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:fromXDelta="-300%"
 android:toXDelta="0%"
 android:fromYDelta="-700%"
 android:toYDelta="0%"
 android:duration="1200"  
 android:zAdjustment="bottom"
 android:interpolator="@android:anim/bounce_interpolator">
</translate>

<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1200"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"

    android:fromDegrees="0"
    android:toDegrees="360">
    </rotate>

4

1 回答 1

0

我认为你不能,你必须在当前的顶部添加新的 ImageView 并为其设置动画。您可以将 3 颗灰色星星保留为一个 ImageView,并为 Golden Stars 添加 3 个 ImageView,它们将被隐藏并为它们设置动画。

如果你想避免它,只需制作双重动画。就像灰色开始消失和金色出现之后

像这样的东西: anim1 - 灰色消失 amim2 - 金色进入

starIv1=(ImageView)findViewById(R.id.starGrey1ImageView);

starIv1.clearAnimation();
anim1.setAnimationListener(new Animation.AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            starIv1.setImageResource(R.drawable.star);
                            starIv1.startAnimation(anim2);
        }
    })
starIv1.startAnimation(anim1);
于 2013-09-26T10:54:36.920 回答