3

我是安卓新手,需要帮助。

当我单击键盘上与图像具有相同标签的按钮时,我希望从屏幕顶部掉下的图像变得不可见。尽管我已经实现了上述几点,但当我想在上一个图像变得不可见后立即再次显示下一个动画时会出现问题。这是我的动画代码。

public void startAnimation(final ImageView aniView) 
{

    animator= ValueAnimator.ofFloat(0 ,.85f);
    animator.setDuration(Constants.ANIM_DURATION);
    animator.setInterpolator(null);

    //generation of random values
    Random rand = new Random();
    index = rand.nextInt((int) metrics.widthPixels);
    //for debugging
    i = Integer.toString(index);
    Log.e(" index is :", i);
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
    {       




        @Override
        public void onAnimationUpdate(ValueAnimator animation)
        {
            float value = ((Float) (animation.getAnimatedValue())).floatValue();

            aniView.setTranslationX(index);

            aniView.setTranslationY((height+ (50*mScale))*value);
            //aniView.setTranslationY(height);
        }
    });
    animator.start();
}

//keyboard methods goes here

@Override
public void onClick(View v)
{
    gettext(v);
}

private void gettext(View v)
{
    try
    {
        String b = "";
        b = (String) v.getTag();

        String img_val = map.get(b);
        int  imgid = (Integer) imageView.getTag();

        Log.e("img values=:", img_val+"  "+imgid);
        if(img_val.equals(ALPHABETS[imgid]))
        {
            imageView.setVisibility(View.INVISIBLE);

            animator.start();
            //trying to start the animation again 
        }   

我正在使用 animation.addupdateListener 一次又一次地调用动画,但它只在.ofFloat完成值时调用。当我单击相应的按钮时,动画变得不可见,但下一个动画在同一时间后再次开始。我想立即开始。

4

1 回答 1

4

基本上再次调用 start() 将不起作用。您需要以某种方式“重置”动画,您之前是否尝试过调用 end() ?

animator.end();
animator.start();
于 2013-10-31T14:41:25.507 回答