当前位置: 代码迷 >> java >> Android删除屏幕外的imageViews
  详细解决方案

Android删除屏幕外的imageViews

热度:90   发布时间:2023-08-02 10:26:18.0

因此,我在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?

  相关解决方案