I have 3 ImageButtons which are animated when Filling to left, like this:
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);
}
Now, I have an onanimationEnd listener like this:
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);
}
The problem is that when I am doing the animations (except goRight), my icons are Flickering for a litle moment. I don't know how to resolve this. Please Help.