2016-05-07 3 views
-3

Это файл макета.Как сделать центр изображения горизонтально в android

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp"> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="8dp"> 

     <ImageView 
      android:id="@+id/thumbnail" 
      android:layout_width="300dp" 
      android:layout_height="200dp" 
      android:layout_centerHorizontal="true" 
      android:adjustViewBounds="true" 
      android:scaleType="fitXY" /> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/thumbnail" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/offer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/title" /> 

    </RelativeLayout> 

</android.support.v7.widget.CardView> 

хотя я уже упоминал android:layout_centerHorizontal="true", Но все-таки изображение не по центру.

Как сделать изображение горизонтально по центру? Любая помощь будет оценена.

+0

очистить свой проект и увидеть результат ....... – sushildlh

+0

Вы можете прикрепить скриншот экрана? – Kunu

ответ

1

Пожалуйста, попробуйте этот. Вы должны установить соответствие родительскому свойству для относительной компоновки.

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="8dp"> 

    <ImageView 
     android:id="@+id/thumbnail" 
     android:layout_width="300dp" 
     android:layout_height="200dp" 
     android:layout_centerHorizontal="true" 
     android:adjustViewBounds="true" 
     android:scaleType="fitXY" 
     android:src="@mipmap/ic_launcher"/> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/thumbnail" 
     android:text="abc" 
     android:textSize="24sp"/> 

    <TextView 
     android:id="@+id/offer" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/title" 
     android:text="abc" 
     /> 

</RelativeLayout> 

0

Пожалуйста, попробуйте изменить ваш android:layout_width к match_parent вашего <RelativeLayout>.

Это должно быть так:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="8dp"> 

     <ImageView 
      android:id="@+id/thumbnail" 
      android:layout_width="300dp" 
      android:layout_height="200dp" 
      android:layout_centerHorizontal="true" 
      android:adjustViewBounds="true" 
      android:scaleType="fitXY" /> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/thumbnail" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/offer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/title" /> 


    </RelativeLayout> 

</android.support.v7.widget.CardView> 
1

Если вы хотите установить изображение centerHorizontal на экране устройства затем сделать RelativeLayout ширина android:layout_width="wrap_content"

0

Это выглядит как вы настроили ваш Relative Layout'sandroid:layout_width="wrap_content" так что установит его left, выровненное где-то , потому что свойство, которое вы использовали в дочернем Image View, равно android:layout_centerHorizontal="true", не будет выполнено так cha nge your Relative Layout до android:layout_width="match_parent".

Используйте этот код.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="8dp"> 

     <ImageView 
      android:id="@+id/thumbnail" 
      android:layout_width="300dp" 
      android:layout_height="200dp" 
      android:layout_centerHorizontal="true" 
      android:adjustViewBounds="true" 
      android:src="@drawable/ic_dashboard" 
      android:scaleType="fitXY" /> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/thumbnail" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/offer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/title" /> 


    </RelativeLayout> 

</android.support.v7.widget.CardView> 
+1

Вы должны оценить ответ с помощью upvote, если он вам полезен. или вы можете принять ответ, если он решит вашу проблему. –

0

Заменить RelativeLayout ширина

android:layout_width="wrap_content " 

к

android:layout_width="match_parent" 
0

1) Ширина родителя (RelativeLayout) должно быть match_parent

2) При использовании ImageView android:layout_centerHorizontal="true" или android:layout_gravity="center_horizontal"

Это позволит установить ваш ImageView горизонтально центр в экране устройства