Affichage TextView sur ImageView dans android
Je veux afficher un texte sur une Image Vue. Je ne l'aime Alesqui suggéré ici:
Android de Texte sur l'image
L'aperçu dans Android studio a l'air bien:
Mais mon résultat ressemble à ceci avec le texte unwantedly ci-dessus:
- Je ajouter le code XML suivant dynamiquement à un LinearLayout pendant l'exécution:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/myImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/myImageSouce" />
<TextView
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/myImageView"
android:layout_alignTop="@+id/myImageView"
android:layout_alignRight="@+id/myImageView"
android:layout_alignBottom="@+id/myImageView"
android:layout_margin="1dp"
android:gravity="center"
android:text="Hello"
android:textColor="#000000" />
</RelativeLayout>
Je ajouter de la façon suivante:
LinearLayout ll = (LinearLayout) findViewById(R.id.layout_story_covers);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < stories.size(); i++)
{
//add imageView
RelativeLayout coverLayout = (RelativeLayout) inflater.inflate(R.layout.fragment_cover, null);
ImageView imageView =(ImageView) coverLayout.findViewById(R.id.imageViewCover);
TextView textView = (TextView) coverLayout.findViewById(R.id.textViewCover);
textView.setText(stories.get(i).title);
imageLoader.displayImage(stories.get(i).cover.fileUrl, imageView);
ll.addView(coverLayout);
}
Cela doit avoir quelque chose à voir avec ce parent LinearLayout. Quelle est la bonne façon de le faire obtenir le résultat?
le textcolor est faux. il devrait être noir, pas jaune. Et il faut dire Bonjour, pas Mon Texte.
ouais, c'est incohérent. Mais j'ai négligé qu'en raison de sa moindre importance.
ouais, c'est incohérent. Mais j'ai négligé qu'en raison de sa moindre importance.
OriginalL'auteur dba | 2014-11-17
Vous devez vous connecter pour publier un commentaire.
Essayez plutôt ceci:
Il y a beaucoup de chose que cette réponse ne fournit pas et vous devriez cesser de le faire. J'ai eu une réponse comme bien d'essayer de les souligner. Il ne devrait pas avoir été choisi comme la bonne. Si quelqu'un a plus d'amélioration pour ma réponse, s'il vous plaît commentaire.
J'ai aussi préférez FrameLayout ici, mais je ne connais pas le contexte de son application et il se pourrait qu'il veut faire d'autres choses qui nécessitent un RelativeLayout (peut-être qu'il va ajouter plus de vues?), donc, j'ai volontairement offert seulement les changements qui résout son problème immédiat.
OriginalL'auteur Karakuri
Conseils:
Romain guy dit: "je n'ai pas dit de ne pas utiliser RelativeLayout, on doit être conscient de sa (possible) impact sur la performance si elle est utilisée dans le haut de l'arbre." Beaucoup mieux d'utiliser un simple FrameLayout si vous le pouvez.
Être conscient de la scaleType propriété dans ImageView est
Si vous voulez l'ImageView être de la même taille que le parent, alors vous devez le définir comme match_parent la hauteur et la largeur. Si vous utilisez l'envelopper de son contenu dépend de la taille de l'image et de la résolution.
Envisager d'utiliser match_parent au lieu de la obsolète fill_parent
Je préfère Picasso pour les bitmaps de gestion.
-
Eh bien, je dois modifier ma réponse et dire que Picasso est juste ma préférence personnelle.
OriginalL'auteur jpardogo