2014-01-13 90 views
1

我重疊的幾個視圖的動態在我的應用程序通過位圖。我想在將位圖保存到圖庫前刪除這些視圖。下面這增加了看法對我的位圖保存多個視圖之前保存 - Android

public void add() 
{ 
    relLayout.addView(newRect); 
    relLayout.addView(newSpeech); 
    relLayout.addView(editImgv); 
    relLayout.addView(resizeImgv); 
} 

有上按壓上述add()函數的按鈕被調用,所有這些觀點得到了我的位圖再次添加功能。

在保存位圖之前,我想刪除所有在我的位圖上添加了 的editImgv和resizeImgv。

關於如何做到這一點的任何想法? 在此先感謝:)

+0

類似於http://stackoverflow.com/questions/3805599/add-delete-view-from-layout? –

+0

如果我使用((ViewManager)resizeImgv.getParent())。removeView(resizeImgv);在該視圖的touchListener裏面它的作品,但如果我在一個函數中使用它,它會給出空pionter錯誤 – ik024

+0

然後你有一個範圍問題 - 該視圖可能不可用b/c你在一個不同的線程或這樣的。 –

回答

3

我已經解決了它通過使用向量數組 - 我放置所有的'resizeImgv'和'editImgv'圖像視圖,我動態地添加到'ImageView'類型的向量數組中,當我爲了節省,我只是將他們的能見度一個接一個地設置成'GONE'。這是一個簡單的解決方案:)

//Global 
Vector<ImageView> imgv = new Vector<ImageView>(); 

....  

//Adding views to my vector array 
public void setImageViewArray(ImageView imgview){ 
    imgv.add(imgview); 
} 

..... 

//when I am about to save 
for(int i = 0; i < imgv.size(); i++){ 
    if(imgv.get(i).getVisibility() == View.VISIBLE){ 
     imgv.get(i).setVisibility(View.GONE); 
    } 
}