Comment ajouter par programme ImageView dans LinearLayout sans espaces supplémentaires?
Je suis en train d'ajouter ImageView par programmation à l'intérieur d'un LinearLayout, qui a une orientation verticale. Mon fichier de configuration est décrit comme le xml ci-dessous:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:id="@+id/mainView"">
<TextView android:id="@+id/tvTituloInformacao"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@color/white"
android:gravity="center_horizontal"
android:shadowColor="@color/black_translucent"
android:shadowDx="2.0"
android:shadowDy="2.0"
android:shadowRadius="3.0"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
<LinearLayout android:id="@+id/resourceContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginBottom="10dip"
android:padding="3dip"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_below="@+id/tvTituloInformacao"
android:background="@color/black_translucent2" />
</RelativeLayout>
Et mon code source java qui ajoute de la ImageViews à la LinearLayout est comme suit:
for(Resource r : mUser.getPictures()) {
ImageView img = new ImageView(this);
img.setVisibility(View.VISIBLE);
img.setTag(r.getThumb60());
imageLoader.DisplayImage(r.getThumb60(), this, img);
((LinearLayout) tempFotosView.findViewById(R.id.resourceContainer)).addView(img);
}
Ce qui se passe est que, avant et après chaque ImageView j'obtiens des espaces supplémentaires qui ne devraient pas y être, de sorte que la hauteur des images récipient augmente de beaucoup. Un test que j'ai fait et j'ai obtenu le résultat attendu était de ne pas utiliser le imageLoader et à la place j'ai mis le ImageResource par programmation d'une image statique de fichier. De cette façon, je n'ai pas obtenir de l'espace supplémentaire.
L'étrange résultat est illustré dans l'image ci-dessous:
Est-il un moyen de ne pas ajouter de cet espace supplémentaire?
OriginalL'auteur Thiago | 2011-12-29
Vous devez vous connecter pour publier un commentaire.
Je pense que les images que vous chargez dans l'image de vues peuvent avoir certains espacement supplémentaire sur le haut et le bas, et l'autre supposition, vous avez le chargement des images dans imageview, avec une résolution différente de celle de votre écran, la taille et la définition scaleType de ImageView à centerInside, si c'est le cas, veuillez essayer d'utiliser la suite par la fixation de la hauteur de l'affichage de l'image en tant que bien, et ensemble scaleType à fixXY.
OriginalL'auteur jeet
Ce qui se passe lorsque l'image est plus large que la taille de l'écran après l'ImageView a été construit. Android réduit la taille de l'image dimensions en conséquence de l'aspect ratio, mais ne supprime pas l'espace alloué autour d'elle plus tôt.
Pour un nettoyeur à résoudre, essayez ce code après votre imageLoader.
OriginalL'auteur Muz
add
; avant de poster une réponse, vous devez savoir ce que vous dites.OriginalL'auteur selvaiyyamperumal