Мерцание Android при использовании Animation и onAnimationEnd Listener

У меня есть 3 кнопки ImageButtons, которые анимируются при заполнении влево, например:

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
    ImageButton top;
    ImageButton left;
    ImageButton right;

    top     = meMap.get("top");
    left    = meMap.get("left");
    right   = meMap.get("right");

    goLeft =
            new TranslateAnimation(0, -(top.getLeft() - left.getLeft()), 0, -(top.getTop() - left.getTop()));

    goRight =
            new TranslateAnimation(0, -(left.getLeft() - right.getLeft()), 0, -(left.getTop() - right.getTop()));

    goTopFromRight =
            new TranslateAnimation(0, top.getLeft() - right.getLeft(), 0, top.getTop() - right.getTop());


    goRight.setAnimationListener(this);

    if (velocityX<-500)
    {
        System.out.println("aaaa "+"ScrollLeft");


        goLeft.setDuration(500);   
        goLeft.setFillAfter(true);
        goLeft.setFillAfter(true);
        top.startAnimation(goLeft);

        goRight.setDuration(500);  
        goRight.setFillAfter(true);
        goRight.setFillAfter(true);
        left.startAnimation(goRight);

        goTopFromRight.setDuration(500); 
        goTopFromRight.setFillAfter(true);
        goTopFromRight.setFillAfter(true);
        right.startAnimation(goTopFromRight);

    }

Теперь у меня есть слушатель onanimationEnd, как это:

public void onAnimationEnd(Animation animation) {
    ImageButton top;
    ImageButton left;
    ImageButton right;

    top     = meMap.get("top");
    left    = meMap.get("left");
    right   = meMap.get("right");



    top.clearAnimation();
    left.clearAnimation();
    right.clearAnimation();


    RelativeLayout.LayoutParams layoutLeft = 
                new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.WRAP_CONTENT,
                        RelativeLayout.LayoutParams.WRAP_CONTENT);

    layoutLeft.addRule(RelativeLayout.ALIGN_BOTTOM,R.id.CenterTextView);
    layoutLeft.addRule(RelativeLayout.LEFT_OF,R.id.CenterTextView);
    top.setLayoutParams(layoutLeft);


    RelativeLayout.LayoutParams layoutRight = 
            new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);

    layoutRight.addRule(RelativeLayout.ALIGN_BOTTOM,R.id.CenterTextView);
    layoutRight.addRule(RelativeLayout.RIGHT_OF,R.id.CenterTextView);
    left.setLayoutParams(layoutRight);

    RelativeLayout.LayoutParams layoutTop = 
            new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);

    layoutTop.addRule(RelativeLayout.CENTER_VERTICAL,RelativeLayout.TRUE);
    layoutTop.addRule(RelativeLayout.CENTER_HORIZONTAL,RelativeLayout.TRUE);
    right.setLayoutParams(layoutTop);


    meMap.put("top", right);
    meMap.put("left", top);
    meMap.put("right", left);

}

Проблема в том, что, когда я делаю анимацию (кроме goRight), мои иконки мерцают на мгновение. Я не знаю, как решить это. Пожалуйста помоги.

Ответы на вопрос(2)

Ваш ответ на вопрос