Puis-je cacher un bouton d'image sur une mise en page, (dimensions et arrière-plan) jusqu'à ce qu'un appel à VISIBLE?
-
27-09-2019 - |
Question
J'ai un bouton d'image cachée dans un de mes xmls mises en page, avec un ensemble d'arrière-plan à une image drawable. Je mis la visibilité à invisible, que je ne veux que l'image pour afficher tous les temps en temps. Le problème est, même si le drawable n'apparaît pas, le bouton d'image nous prend toujours l'espace - Y at-il un moyen de cacher l'image d'arrière-plan, et faire des dimensions de 0 jusqu'à ce que j'invite à montrer dans ma classe principale / p>
Merci!
Edit:? Donc, dans mon xml, comment pourrais-je écrire que
<ImageButton android:id="@+id/myimage" android:visibility="invisible"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:background="@drawable/my_image"></ImageButton>
Je veux avoir l'image toujours disparu, à moins d'une certaine condition se produit, je veux alors que l'image soit visible sous cette seule condition. Donc, dans mon xml je besoin d'être mis à GONE, mais dans ma déclaration conditionnelle si je dis quelque chose comme:
myimage.setVisibility (SHOW);?
La solution
Toutes les vues, y compris ImageButton, Hériter de android.view.View, ils ont tous un attribut de visibilité qui peut être réglée. Au lieu de définir la visibilité de la ressource drawable, mis sur le ImageButton.
Autres conseils
Définissez la visibilité à GONE
Ne pas régler la largeur / hauteur à zéro, qui est laid. La vue sera toujours prendre l'espace, sauf si vous modifiez le paramètre de visibilité. Ceci est le code que vous voulez:
myImageButton.setVisibility (View.GONE);
View.GONE - invisible, prend pas de place View.INVISIBLE - invisible, mais occupe toujours l'espace View.VISIBLE - l'utiliser pour le ramener
Définir la propriété de visibilité de Imageview comme celui-ci en java
imgView.setVisibility(View.VISIBLE);
imgView.setVisibility(View.INVISIBLE);
imgView.setVisibility(View.GONE);
Ou comme celui-ci en XML
android:visibility="visible"
android:visibility="gone"
android:visibility="invisible"
Résultat pour chaque sera comme ceci