2014-01-13 3 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 этого представления он работает, но если я использую его в функции, он дает ошибку null 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); 
    } 
} 
Смежные вопросы