1 pièce(s) jointe(s)
Réduire la taille d'une ImageView dans un layout en fonction d'un TextView
Bonjour,
J'ai un LinearLayout de forme rectangulaire qui contient une ImageView carrée à gauche et un TextView de 2 lignes maximum à droite.
Je voudrais que l'image ne soit pas plus haute que le texte afin d'éviter d'avoir un espace blanc inutile sous le texte dans le layout.
Voici un schéma expliquant ce que je veux :
http://www.developpez.net/forums/att...1&d=1345202856
Voici le code correspondant. Les Layouts sont créés programmativement car ils sont dynamiques :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class MarkerView extends LinearLayout {
private TextView description; // La description s'affichant sur le marqueur
/**
* Constructeur créant la vue associée au marqueur passé en paramètre
*
* @param context
* @param marker
*/
public MarkerView(Context context, Marker marker) {
super(context);
this.marker = marker;
description.setText("Mon texte de 2 lignes");
description.setMaxLines(2);
description.setTextColor(Color.BLACK);
// Image
ImageView img = new ImageView(this.getContext());
img.setImageResource(R.drawable.image);
// Essais pour récupérer la taille du texte et modifier la taille max de l'image en conséquence, mais description.getHeight() renvoie toujours 0.
//addView(description);
//int h= description.getHeight(); // Renvoie 0
//System.out.println(h);
//this.removeAllViews();
//img.setMaxHeight(h);
// Background du Layout
setBackgroundResource(R.drawable.fond);
// On ajoute l'image
addView(img);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER;
params.leftMargin = 5;
// On ajoute le texte
addView(description, params);
}
} |
Savez-vous comment je pourrais faire pour que mon image ait une taille maximum égale à la taille du texte quel que soit la résolution de l'appareil qui exécute l'appli ?
J'ai essayé de récupérer la hauteur du textView mais elle renvoie toujours 0.
Merci d'avance, n'hésitez pas si vous voulez plus de précisions.
Aenur56
Ca pourrait être une solution
Ca pourrait être une solution : le créer et le modifier juste après..
Ayant l'habitude d'utiliser des fichiers xml, je trouve ca plus simple mais le choix te reviens