繁体   English   中英

Android删除屏幕外的imageViews

[英]Android delete off screen imageViews

因此,我在LinearLayout内以编程方式创建了ImageView,并且有两个按钮。

一个按钮使用TranslateAnimation使ImageView向左移动。 另一个按钮使用TranslateAnimation使ImageView向右移动。

我想要它,以便当ImageView移出屏幕时,将其删除。

我知道有一个名为removeView的方法,您可以在其中将视图传递到其参数中,然后删除该视图,但是我不知道如何检查ImageView是否在屏幕外。

简而言之,这就是我要做的

if(imageView.isOffScreen()){
     linearLayout.removeView(imageView);
}

除了isOffScreen()并不是一个真正的方法,而且我找不到用于ImageViews的任何方法来检查它是否在屏幕外。

TLDR:如何检查ImageView是否在屏幕外? (通过屏幕外,我的意思是您无法在电话屏幕上看到它。)

由于您使用的是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?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM