我创建了一个名为 WheelLayout 的自定义 RelativeLayout,其中包含两个 ImageView。第一个视图 WheelView 是一个自定义视图,它会调用 RotateAnimation 几次。
WheelView 有一个名为 WheelListener 的自定义接口。
public interface WheelListener {
public void wheelStarted();
public void wheelStoppedOnSlice(int sliceNum);
}
在 WheelView 中,我实现 Animation.AnimationListener 如下:
@Override
public void onAnimationStart(Animation animation) {
mListener.wheelStarted();
}
@Override
public void onAnimationEnd(Animation animation) {
mListener.wheelStoppedOnSlice(mCurrentSlice);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
其中 mListener 是 WheelListener。
WheelLayout 像这样实现 WheelListener:
@Override
public void wheelStarted() {
mSliceImage.setVisibility(View.GONE);
}
@Override
public void wheelStoppedOnSlice(int sliceNum) {
mSliceImage.setBackgroundResource(mSlices[sliceNum]);
mSliceImage.setVisibility(View.VISIBLE);
}
当 WheelView 动画时,我希望看到 mSliceImage 消失并且 WheelView 继续其动画完成。相反,两者都不会发生。我的 WheelView 没有动画并且 mSliceImage 没有消失。
但是,在动画完成后,我确实看到 mSliceImage 更改了它的背景资源。
我也尝试了同样的事情,其中 mSliceImage不是自定义布局的孩子,并且效果很好。
有没有人有任何想法?