2016-11-07 4 views
0

У меня возникла проблема с установкой фонового изображения для моего приложения. У меня есть линейная компоновка с двумя изображениями. Один с логотипом и весом 1 и один с фоном с весом 3. Я хочу, чтобы второй был всегда центрирован по горизонтали, а стороны были обрезаны в вертикальной ориентации, а нижняя часть обрезана в горизонтальной ориентации. CENTER_CROP почти выполняет эту работу, но я хочу, чтобы верхняя часть моего изображения была нарисована. Я не забочусь о дне.Соотношение сторон изображения, ширина заливки и высота

В этой конфигурации вертикальная ориентация идеальна, но горизонтальная разрезает верхнюю часть изображения, и я хочу, чтобы верх всегда был видимым. Снизу можно обрезать

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:layout_margin="50dp" 
     android:layout_gravity="center_horizontal" 
     android:src="@drawable/masters_logo" 
     android:id="@+id/imageView" /> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="3" 
     android:scaleType="centerCrop" 
     android:src="@drawable/masters_login_background"/> 

</LinearLayout> 

Этого я хочу достичь.

Вертикальная ориентация: vertical

Горизонтальная ориентация: horizontal

ответ

0

Если вы хотите установить фон на экране входа в систему, вы должны добавить android:background="@drawable/masters_login_background" атрибут в корне LinearLayout. В противном случае, вы должны использовать, например, RelativeLayout в качестве корневого элемента и добавьте в этом ваша ImageView, как верхний элемент, чему-л, как это:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/masters_login_background"/> 

     <!-- other code here --> 

</RelativeLayout> 
0

мне пришлось редактировать анс, как я понял ваш вопрос неправильно. Используйте приведенный ниже код. Это будет размещать ваш bg img в фоновом режиме и логотип над bg img.

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

<ImageView 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="3" 
      android:scaleType="centerCrop" 
      android:src="@drawable/masters_login_background"/> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:layout_margin="50dp" 
      android:layout_gravity="center_horizontal" 
      android:src="@drawable/masters_logo" 
      android:id="@+id/imageView" /> 



    </LinearLayout> 
Смежные вопросы