所以我在LinearLayout中有一个以编程方式创建的ImageView,并且有两个按钮。
一个按钮使用TranslateAnimation使ImageView向左移动。 另一个按钮使用TranslateAnimation使ImageView向右移动。
我想要它,以便当ImageView离开屏幕时,它会被删除。
我知道有一个名为removeView的方法,你可以将视图传递给它的参数并删除视图,但我不知道如何检查ImageView是否在屏幕外。
简而言之,这就是我想做的事情
if(imageView.isOffScreen()){
linearLayout.removeView(imageView);
}
除了isOffScreen()不是一个真正的方法,我找不到任何可以检查它是否在屏幕外的ImageViews方法。
TLDR: 如何检查ImageView是否在屏幕外? (在屏幕外,我的意思是你不能在手机屏幕上看到它。)
答案 0 :(得分:0)
由于您正在使用TranslateAnimation,如果您已经知道在动画结束时您的视图将不在屏幕上,那么您可以设置一个AnimationListener,它将从视图树中删除视图动画结束了。
yourAnimation.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation anim) {};
public void onAnimationRepeat(Animation anim) {};
public void onAnimationEnd(Animation anim) {
linearLayout.removeView(imageView);
};
});
这样您就不必在任何时候检查视图的位置,您可以在动画完成时将其删除。
顺便说一句,是否有理由要删除视图,而不是将Visibilty设置为GONE?