web-dev-qa-db-fra.com

android: comment aligner une image au centre horizontal d'une imageview?

J'ai essayé tous les types de scaletypes, mais ils ont tous pour résultat que l'image se trouve dans le coin gauche de la vue d'image.

 <ImageView
    Android:id="@+id/image"
    Android:scaleType="centerInside"

    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"

    Android:layout_marginRight="6dip"
    Android:background="#0000" 
    Android:src="@drawable/icon1" />
40
Yang

Votre ImageView a l'attribut wrap_content. Je penserais que l'image est centrée dans l'imageview, mais l'imageview elle-même n'est pas centrée dans la vue parent. Si vous ne visualisez que l'image à l'écran, essayez match_parent au lieu de wrap_content. Si vous avez plus d'une vue dans la mise en page, vous devez centrer la vue d'image.

44
Janusz
<ImageView
    Android:id="@+id/img"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center" />
70
Neil Chan

Vous pouvez centrer le ImageView lui-même en utilisant:

Android:layout_centerVertical="true" ou Android:layout_centerHorizontal="true" Pour vertical ou horizontal. Ou centrer à l'intérieur du parent:

Android:layout_centerInParent="true"

Mais on dirait que vous essayez de centrer l'image source réelle à l'intérieur de l'image elle-même, ce que je ne suis pas sûr de savoir.

31
Matt Swanson

Cela fonctionne pour moi lors de l'alignement de la vue de l'image dans la reproduction linéaire.

<ImageView Android:id="@Android:id/empty"
    Android:src="@drawable/find_icon"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_gravity="center"
    Android:scaleType="center"
    />
12
klaydze

Essayez ce code:

 <LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:gravity="center_horizontal">

            <ImageView
                Android:id="@+id/imgBusiness"
                Android:layout_width="40dp"
                Android:layout_height="40dp"
                Android:src="@drawable/back_detail" />
</LinearLayout>
7
Abbes Yassine

Essayer:

Android:layout_height="wrap_content"
Android:scaleType="fitStart"

sur l'image dans la RelativeLayout

2
Mark Tickner

Utiliser "fill_parent" seul pour layout_width fera l'affaire:

 <ImageView
    Android:id="@+id/image"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginRight="6dip"
    Android:background="#0000" 
    Android:src="@drawable/icon1" />
2
cdavidyoung

Pour moi, Android:gravity="center" a fait le tour dans l’élément de présentation parent.

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

    <ImageView
        Android:id="@+id/fullImageView"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:adjustViewBounds="true"
        Android:contentDescription="@string/fullImageView"
        Android:layout_gravity="center" />

</LinearLayout>
2
Kovács Ede

Utilisez cet attribut: Android: layout_centerHorizontal = "true"

0
Thamo Tham