簡體   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