android:如何在imageview的水平中心对齐图像?

Yan*_*ang 47 android alignment

我已经尝试过所有的scaletypes,但是所有这些都会导致图像位于imageview的左下角.

 <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" />
Run Code Online (Sandbox Code Playgroud)

小智 77

<ImageView
    android:id="@+id/img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />
Run Code Online (Sandbox Code Playgroud)

  • 如果父级是`RelativeLayout`,请使用`android:layout_centerHorizo​​ntal ="true"` (39认同)
  • 注意:当parent是LinearLayout或类似的时,这是正确的 (16认同)

Jan*_*usz 45

您的ImageView具有该属性wrap_content.我认为图像在图像视图中居中,但图像视图本身不在父视图中居中.如果屏幕上只有imageview,请尝试match_parent代替wrap_content.如果布局中有多个视图,则必须使图像视图居中.

  • 杨 - 我认为你的问题是父亲是相对布局而不是线性布局.如果是这种情况,那么尝试android:layout_centerHorizo​​ntal ="true"而不是layout_gravity. (6认同)

Mat*_*son 33

您可以使用以下内容使ImageView本身居中:

android:layout_centerVertical="true"android:layout_centerHorizontal="true" 垂直或水平.或者在父母内部居中:

android:layout_centerInParent="true"

但听起来你正试图将实际的源图像集中在imageview本身,我不确定.

  • 注意:当parent是RelativeLayout时,这是真的 (15认同)

kla*_*dze 13

This works for me when aligning image view in linearlayout.

<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"
    />
Run Code Online (Sandbox Code Playgroud)


Abb*_*ine 8

试试这段代码:

 <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>
Run Code Online (Sandbox Code Playgroud)