Android旋转动画完成

问题描述:

我正在尝试使用RotationAnimation移动ImageButton。我已经扩展ImageButton来覆盖onAnimationEnd以避免动画结束时的屏幕闪烁,并且想更新实际按钮的位置[因为动画只是一个表面的动作]。我如何确定动画结尾的按钮的确切坐标?附上一些我的代码.. 感谢您的帮助!如果您需要更多详细信息,请告诉我。Android旋转动画完成

public class HomeNavigationButton extends ImageButton { 
public HomeNavigationButton(Context context, AttributeSet attrs, 
     int defStyle) { 
    super(context, attrs, defStyle); 
} 
public HomeNavigationButton(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 
public HomeNavigationButton(Context context) { 
    super(context); 
} 


@Override 
protected void onAnimationEnd() { 
    super.onAnimationEnd(); 
    int l = ? 
    int t = ? 
    int r = ? 
    int b = ? 
    this.layout(l,t,r,b); 
} 

按钮动画的位置?我会肢体出去,猜测你不能。动画很有趣。他们不是“真实的”。把它们想象成海市蜃楼。尝试这个。非常缓慢地旋转图像。如果图像是矩形,当图像大约45度时,请单击图像以前的位置,但不会太长。您实际上会注册点击,因为图像不是,实际上正在以实际坐标旋转。

我会考虑实际上将按钮设置为像游戏精灵一样动画,或者对动画进行试验和错误并手动设置值。如果你做第二个,确保你动态转换为DIP坐标而不是原始数据。

+0

感谢您的回复。不幸的是,我试图手动设置它们,但无法精确到避免按钮“跳跃”一个或两个像素。非常令人沮丧! – italianmike