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

时间:2010-04-06 18:27:14

标签: android alignment

我已尝试过所有尺度类型,但所有尺寸都会导致图像位于图像视图的左下角。

 <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" />

12 个答案:

答案 0 :(得分:72)

<ImageView
    android:id="@+id/img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

答案 1 :(得分:45)

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

答案 2 :(得分:32)

您可以使用以下方法使ImageView本身居中:

android:layout_centerVertical="true"android:layout_centerHorizontal="true" 适用于垂直或水平。或者以父母为中心:

android:layout_centerInParent="true"

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

答案 3 :(得分:13)

当在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"
    />

答案 4 :(得分:7)

试试这段代码:

 <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>

答案 5 :(得分:2)

仅使用“fill_parent”作为layout_width即可:

 <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" />

答案 6 :(得分:2)

尝试:

android:layout_height="wrap_content"
android:scaleType="fitStart"

RelativeLayout

中的图片上

答案 7 :(得分:2)

对我来说android:gravity="center"在父布局元素中完成了这个技巧。

<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>

答案 8 :(得分:1)

您可以使用以下方法以 线性布局 来水平放置图像视图:

 android:layout_gravity="center"

它将使图像居中于父元素,如果您只想水平居中,则可以使用:

 android:layout_gravity="center_horizontal"

答案 9 :(得分:0)

使用此属性: 机器人:layout_centerHorizo​​ntal = “真”

答案 10 :(得分:0)

将图像的宽度指定为 match_parent,根据需要指定高度,例如 300 dp。

<ImageView
    android:id = "@+id/imgXYZ"
    android:layout_width = "match_parent"
    android:layout_height = "300dp"
    android:src="@drawable/imageXYZ"
    />

答案 11 :(得分:-1)

这是xml中如何使ImageView居中的代码,我使用了“layout_centerHorizo​​ntal”。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_centerHorizontal="true"
    >
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img2"
    />
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img1"
        />
</LinearLayout>

或另一个例子......

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    >
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img2"
    />
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img1"
        />
</LinearLayout>