mise en page android: cette balise et ses enfants peuvent être remplacés par un et un dessin pouvant être dessiné

Lorsque je lance la mise en page sur un fichier XML spécifique, je reçois ceci:

This tag and its children can be replaced by one  and a compound drawable 

Quel changement devrait être fait pour le code xml suivant:

     

Voici à quoi cela ressemble à l’écran:

entrer la description de l'image ici

L’icône de la caméra est la valeur par défaut. En cliquant dessus, l’utilisateur aura la possibilité de choisir une autre image.

Pour développer la réponse de Romain Guy, voici un exemple.

Avant:

     

Après:

  

Fusionnez les TextView et TextView en un, en utilisant les méthodes setCompoundDrawable*() de setCompoundDrawable*() ou en utilisant android:drawableLeft .

Je pensais que j’essaierais d’obtenir des points supplémentaires pour cela aussi: vous pouvez append un remplissage entre l’image et le texte en utilisant android:drawablePadding . https://stackoverflow.com/a/6671544/1224741

Parfois, il est possible de remplacer ImageView (ou plusieurs) et TextView par un TextView TextView avec un ou plusieurs TextView composés. Il n’y a pas beaucoup de parameters qui peuvent être appliqués au dessin dessiné en utilisant l’API native et cette bibliothèque TextViewRichDrawable , mais si vous pouvez gérer un TextView au lieu d’utiliser LinearLayout, vous devez certainement l’utiliser .

La liste des atsortingbuts et parameters pouvant être appliqués aux tirables composés:

Taille: ( OUI, vraiment ):

  

Même définir la ressource vectorielle comme pouvant être dessinée:

  

Drawable’s Padding en utilisant l’API native android:drawablePadding -> link

Voici un exemple:

textView rich dessinable

Un LinearLayout qui contient un ImageView et un TextView peut être traité de manière plus efficace en tant que tirable composé (un seul TextView , en utilisant les drawableTop , drawableLeft , drawableRight et / ou drawableBottom pour dessiner une ou plusieurs images adjacentes au texte).

Si les deux widgets sont décalés les uns des autres avec des marges, cela peut être remplacé par un atsortingbut drawablePadding .

Il existe un correctif rapide pour effectuer cette conversion dans le plug-in Eclipse.

De: Android Docs API officielle!

Lorsque j’ai suivi le code ci-dessus, le texte à l’intérieur de TextView n’est pas défini correctement. Vous devez définir sa gravité au centre | pour atteindre ce qui est indiqué dans la question posée.

La textview ressemble à ceci:

    

Si vous ne souhaitez pas modifier ImageView et TextView, vous pouvez modifier la version du fichier AndroidManifest.xml comme suit:

   

Si votre version est Android: targetSdkVersion = “17” changez le “18”.

J’espère que cela va rectifier. Je l’ai fait et bien fait

Une autre approche consiste à intégrer ViewImage dans un autre LinearLayout (permet de le gérer avec un identifiant seul):

      

  This tag and its children can be replaced by one  and a compound drawable