我正在尝试使用imagebutton.layout(l,t,r,b)在布局的特定点上放置多个图像。安排好之后,我想在每个imagebutton上执行一个动画。问题是,动画在imagebutton在屏幕上的位置改变之前就开始了,这会导致动画看起来出错。
我该怎么解决?这里有一些代码…

private void arrangeButtons()
{
  int temp = 0;
  for(ImageButton imageButtonButton :imageButtonList) {
    imageButtonButton.setCurrentPositionIndex(temp);
    int l = PositionsLeft[temp];
    int t = PositionsTop[temp];
    int r = PositionsRight[temp];
    int b = positionsBottom[temp];
    currentButton.layout(l,t,r,b);
    temp++;
  }
  ViewGroup vg = (ViewGroup)findViewById(R.id.imageListFrame);
  vg.invalidate();
  vg.refreshDrawableState();
}
public static void rotateButtons() {
  for(ImageButton imageButton : imageButtonList) {
    RotateAnimation rotation = new RotateAnimation(0, 45, 25, 25);
    imageButton.setAnimation(rotation);
    imageButton.startAnimation(rotations);
  }
}
public void onCreate(Bundle savedInstanceState) {
  setContentView(R.layout.main);
  arrangeButtons();
  rotateButtons();
}

有什么想法吗?谢谢!

最佳答案

尝试在requestLayout()之后调用currentButton.layout(l,t,r,b);或更好地使用setLayoutParams来更改视图在屏幕上的位置。

关于android - 在View.layout(l,t,r,b)之后Android不重绘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8512087/

10-12 06:17