2010-11-21 24 views
0

Mon ImageView pour une raison étrange est toujours afficher une image au milieu, à gauche de mon écran malgré le code xml insistant pour être au centre.Besoin d'aide avec un affichage ImageView toujours incorrectement

Je force l'orientation portrait dans mon application et voici mon code xml pour ma mise en page:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:gravity="center"> 

    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/image_view" 
    android:layout_weight="1.0"/> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/message" 
    android:gravity="center_horizontal" 
    android:padding="10dip"/> 

    <Button 
      android:layout_gravity="center_horizontal" 
    android:layout_width="fill_parent" 
    android:textStyle="bold" android:id="@+id/action_button" android:selectAllOnFocus="false" android:layout_height="100dip" android:text="Click here to preform actions"/> 
</LinearLayout> 

Ainsi, la page doit afficher comme image au milieu, l'extension de la largeur de l'écran, le texte ci-dessous cela et le bouton ci-dessous. Mais pour une raison quelconque, l'image est affichée comme une petite vignette de boîte dans le milieu à gauche de l'écran - des idées sur une solution de contournement?

Répondre

2

En supposant que vous voulez que votre image soit centrée à l'intérieur d'une case supérieure ici, vous ne voulez pas android:gravity="center", vous voulez juste android:scaleType sur le ImageView lui-même. "center" est la bonne valeur si vous ne voulez pas de mise à l'échelle; centerInside est probablement approprié si vous le faites (dans ce cas, vous aurez besoin de définir une sorte de dimensions ou de poids sur votre ImageView). Pour plus d'informations sur les valeurs scaleType, voir the documentation.

Vous ne voulez pas non plus que la hauteur de l'image soit définie sur fill_parent, sinon elle le fera (ce qui signifie qu'il n'y a pas de texte en dessous, puisque l'image remplit tout le parent LinearLayout). Vous voulez probablement que la hauteur de ImageView soit définie sur wrap_content ou sur une hauteur fixe (par exemple, 100dip).