2010-11-24 5 views
59

donc j'ai un ImageView avecRéglage de la largeur et la hauteur maximum pour ImageView dans Android

android:maxHeight="100px" 
android:maxWidth="250px" 
android:minHeight="100px" 
android:minWidth="250px" 
android:scaleType="centerInside" 

Ce point de vue de l'image est utilisée pour montrer une image qui est obtenue à partir de la galerie ou un appareil photo. Dans les deux cas, l'image n'est pas redimensionnée pour tenir dans l'imageview, elle étire juste son espace autant qu'il a besoin.

Une idée de comment le faire rester à l'intérieur de ces limites?

<?xml version="1.0" encoding="utf-8"?> 

<EditText 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:id="@+id/txtDescription" 
    android:layout_below="@+id/txtSubject" 
    android:inputType="textMultiLine" 
    android:height="80px" 
    android:hint="@string/description"></EditText> 

<EditText 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/txtDescription" 
    android:layout_width="fill_parent" 
    android:id="@+id/txtMorada" 
    android:hint="@string/address" /> 

<ImageButton 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_below="@+id/txtMorada" 
    android:id="@+id/btGPS" 
    android:layout_alignParentLeft="true" 
    android:src="@drawable/ic_menu_compass"></ImageButton> 

<ImageView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_below="@+id/btGPS" 
    android:layout_marginTop="25px" 
    android:id="@+id/imgPoint" 
    android:src="@drawable/google_logo_small" 
    android:maxHeight="100px" 
    android:maxWidth="250px" 
    android:minHeight="100px" 
    android:minWidth="250px" 
    android:scaleType="centerInside"></ImageView> 

<ImageButton 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_toRightOf="@+id/imgPoint" 
    android:id="@+id/btGallery" 
    android:layout_below="@+id/btCamera" 
    android:src="@drawable/ic_menu_gallery" 
    android:layout_alignParentRight="true"></ImageButton> 

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_marginTop="10px" 
    android:id="@+id/btSubmit" 
    android:layout_below="@+id/btGallery" 
    android:text="@string/submit"></Button> 

<ImageButton 
    android:layout_height="wrap_content" 
    android:id="@+id/btMap" 
    android:layout_below="@+id/txtMorada" 
    android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/ic_menu_mapmode"></ImageButton> 

<TextView 
    android:layout_below="@+id/txtMorada" 
    android:layout_width="wrap_content" 
    android:layout_toLeftOf="@+id/btMap" 
    android:layout_height="wrap_content" 
    android:id="@+id/lblNewPointLatitude" 
    android:text="Latitude"></TextView> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_toLeftOf="@+id/btMap" 
    android:layout_height="wrap_content" 
    android:id="@+id/lblNewPointLongitude" 
    android:layout_below="@+id/lblNewPointLatitude" 
    android:text="Longitude"></TextView> 

<ImageButton 
    android:layout_below="@+id/btMap" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_toRightOf="@+is/imgPoint" 
    android:id="@+id/btCamera" 
    android:layout_marginTop="25px" 
    android:src="@drawable/ic_menu_camera" 
    android:layout_alignParentRight="true"></ImageButton> 

<Spinner 
    android:layout_height="wrap_content" 
    android:id="@+id/spCategoria" 
    android:layout_width="fill_parent" 
    android:prompt="@string/spCategoriaPrompt"></Spinner> 

<Spinner 
    android:layout_height="wrap_content" 
    android:id="@+id/spSubcategoria" 
    android:layout_below="@+id/spCategoria" 
    android:layout_width="fill_parent" 
    android:prompt="@string/spSubcategoriaPrompt"></Spinner> 

<EditText 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/spSubcategoria" 
    android:layout_width="fill_parent" 
    android:id="@+id/txtSubject" 
    android:hint="@string/subject"></EditText> 

    </RelativeLayout> 
</ScrollView> 
+1

Quelle est la mise en page entourant l'ImageView? Pouvez-vous poster un extrait plus grand du XML? –

+1

Vous devriez également ajouter des sauts de ligne avec indentation à votre XML. C'est illisible comme ça. Une chose que j'ai remarquée était dans la TextView de btCamera: Votre layout_toRightOf dit '@ + is' au lieu de' @ + id'. Ce n'est pas votre problème principal, bien sûr, mais cela affectera votre mise en page. – kcoppock

+0

duplication possible de [Android imageview ne respectant pas maxWidth?] (Http://stackoverflow.com/questions/3530328/android-imageview-not-respecting-maxwidth) –

Répondre

165

Essayez l'attribut adjustViewBounds:

android:adjustViewBounds="true" 
+0

Ceci est la bonne réponse. Je vous remercie – MBH

8

vous avez à la fois layout_width et layout_height ensemble à wrap_content, en plus de définir des valeurs explicites pour la largeur et la hauteur. Au lieu de cela, vous devez simplement configurer layout_width et layout_height avec une valeur numérique. En outre, utilisez dp au lieu de px. Voir supporting multiple screen sizes.

+0

Vous ne pouvez pas définir layout_width/height à des valeurs entières dans ce contexte. –

0

Essayez d'inclure ceci: xmlns:android="http://schemas.android.com/apk/res/android" Exemple:

<ImageView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/imageView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:maxHeight="400dp" 
    android:adjustViewBounds="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:src="@drawable/background_img" 
    /> 
Questions connexes