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 に答える