Android: как выровнять изображение в горизонтальном центре изображения? - PullRequest
45 голосов
/ 06 апреля 2010

Я перепробовал все масштабные типы, но все они приводят к тому, что изображение находится в левом углу изображения.

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

Ответы [ 10 ]

74 голосов
/ 02 мая 2011
<ImageView
    android:id="@+id/img"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />
45 голосов
/ 06 апреля 2010

Ваш ImageView имеет атрибут wrap_content.Я думаю, что изображение центрировано внутри изображения, но само изображение не центрировано в родительском представлении.Если на экране отображается только изображение, попробуйте match_parent вместо wrap_content.Если у вас есть более одного вида в макете, вы должны центрировать изображение.

32 голосов
/ 07 апреля 2010

Вы можете центрировать сам ImageView, используя:

android:layout_centerVertical="true" или android:layout_centerHorizontal="true" Для вертикального или горизонтального. Или центрировать внутри родителя:

android:layout_centerInParent="true"

Но звучит так, будто вы пытаетесь центрировать фактическое исходное изображение внутри самого изображения, в котором я не уверен.

13 голосов
/ 21 сентября 2013

Это работает для меня при выравнивании вида изображения в 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"
    />
7 голосов
/ 02 апреля 2016

Попробуйте этот код:

 <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>
2 голосов
/ 04 мая 2015

Для меня 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>
2 голосов
/ 14 марта 2015

Попробуйте:

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

на изображении в RelativeLayout

2 голосов
/ 02 ноября 2012

Использование только «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" />
0 голосов
/ 24 ноября 2015

Это код в xml о том, как центрировать ImageView, я использовал "layout_centerHor Horizontal".

<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>
0 голосов
/ 15 ноября 2014

Используйте этот атрибут: андроид: layout_centerHorizontal = "истинный"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...