我创建了一个名为WheelLayout的自定义RelativeLayout,它包含两个ImageView。第一个View,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 不是自定义布局的子项,并且它运行良好。
有没有人有任何想法?
答案 0 :(得分:0)
问题是你使用" View.GONE"。你应该使用" View.INVISIBLE"
试试这个
@Override
public void wheelStarted() {
mSliceImage.setVisibility(View.INVISIBLE);
}