2011-03-09 3 views
0

J'ai passé 3 heures à essayer de faire fonctionner cela sans succès, donc quelqu'un ici peut aider.Comment puis-je obtenir ImageView pour redimensionner une image et aligner en haut à droite?

j'ai un FrameLayout qui est en cours de chargement par décompressé à partir d'un fichier XML et il je la disposition suivante:

<LinearLayout 
     android:layout_width="0dip" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" > 
     <ImageView 
     android:id="@+id/element_image" 
      android:layout_width="wrap_content" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:layout_marginBottom="10dip" 
      android:layout_marginLeft="10dip" 
      android:scaleType="fitStart" 
      android:background="#888888" >  
     </ImageView> 
     <Button android:id="@+id/element_button" 
      style="@style/Button" 
      android:layout_gravity="right" 
      android:text="@string/element_button_label" 
     /> 
    </LinearLayout> 

J'ai une image chargée d'un blob que je veux montrer dans ce ImageView. Dans le GalleryAdaptor je charge l'image comme ceci:

ImageView image = (ImageView) v.findViewById(R.id.element_image); 
    byte [] bitmapData = cursor.getBlob(4); 
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length);    
    image.setImageBitmap(bitmap); 

Lorsque j'utilise Android: scaleType = « fitStart » dans la mise en page au-dessus de l'image n'est pas réduite à la hauteur ou la largeur de la ImageView mais environ un tiers des c'est la largeur (que je peux voir du fond gris que je lui ai donné) et elle est centrée.

Si j'utilise android: scaleType = "fitXY" la hauteur de l'image est mise à l'échelle mais pas la largeur. Encore une fois l'image est centrée.

Quelqu'un peut-il me donner quelques conseils sur:

  1. Comment obtenir l'image à l'échelle à la fois la hauteur et la largeur sage
  2. Comment aligner le haut de l'image droite

Répondre

1

répondre à ma propre question ici - mais ressemble à ceci était juste un problème avec la résolution de l'image source. Android (2.2 au moins) ne semble pas vouloir mettre à l'échelle ces images quand fitStart ou fitEnd est utilisé - mais quand le fitXY est utilisé, il les met à l'échelle.

Questions connexes