Comment modifier dynamiquement ImageView Hauteur
J'ai un linéaire simple de mise en page utilisé pour ListView de la cellule, et il a une imageview. L'image sera téléchargée à partir d'internet, de sorte que la taille peuvent être de tailles différentes.
Cependant, je tiens à définir la largeur de l'imageview être fill_parent, qui est fixe, et de modifier dynamiquement la hauteur de l'image au moment de l'exécution. Règles pour définir la hauteur de l'image:
si l'image de h/w ratio est supérieur à 1, faire de l'ImageView place, les moyens de faire correspondre la hauteur à la largeur.
si l'image de h/w ratio est inférieur à 1, la taille proportionnellement. Deux échantillons comme ci-dessous.
Le Premier est h/w<1, tandis que le second 'Chat' est h/w>1.
Merci pour votre temps.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:padding="10dp" >
<TextView
android:id="@+id/postTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/postImg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/dummy_image"
android:contentDescription="@string/postImage" />
</LinearLayout>
OriginalL'auteur Cullen SUN | 2013-05-06
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin à la sous-classe ImageView
Remplacer la onMeasure, je n'ai pas testé, mais toutes les variables dont vous avez besoin sont là et l'idée est correcte. Vous venez d'effectuer les appliquer le ratio d'aspect de l'image à la imageviews hauteur, et si il est plus grand que la largeur, la mettre à la largeur.
non, pas de travail. Merci quand même
ce qui se passe, parce que ces paramètres à l'échelle de l'image tels que la largeur est statique et la hauteur est tiré respectifs du rapport d'aspect de l'image.
le xml que j'ai montré est pour un adaptateur de getview, l'ImageView charger dynamiquement une image à partir de l'url
en fait, je doit demander "comment obtenir le véritable px taille pour la fill_parent", j'ai pensé à elle en utilisant DisplayMetrics
OriginalL'auteur Pork 'n' Bunny
L'endroit où vous vous chargez de l'imageView dans le code de l'url, vous devez définir les paramètres de mise en page de l'ImageView. Il va changer les dimensions de l'image de façon dynamique.
Après le chargement de l'image trouver les dimensions et le calcul du ratio, et de modifier les dimensions en fonction de la condition que vous souhaitez appliquer.
OriginalL'auteur Yatin Wadhawan