2017-01-24 1 views
0

Пожалуйста, дайте мне подсказку о том, как я могу сделать это изображение занимающим весь экран независимо от ориентации или размера экрана.Фоновое изображение в прокручиваемом relativeLayout

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 

    tools:context="com.gadgetcatch.alex.cardcelebration.MainActivity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

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

    </RelativeLayout> 
</ScrollView> 

Изображения выше на Nexus4 и Nexus 10 без атрибутов. На связи 10 изображение даже не на основном изображении, оно начинается после. Nexus4 Nexus10

Добавление adjustViewBounds = «истина» делает картину так широко, как на экране, но по-прежнему оставляет пустую полосу в нижней части на Nexus 10 устройств

picture with adjustView

Что atribute необходимо использовать так что изображение будет занимать весь экран независимо от используемого устройства. Спасибо заранее всем, кто может помочь

ответ

0

Если относительная компоновка не занимает весь экран, вы всегда получите эту белую полосу внизу, потому что атрибут match parent соответствует представлению изображения.

Это то, что я хотел бы сделать:

  • Используйте FrameLayout как расположение корневой, с шириной match_parent и высотой.
  • Добавить ImageView в качестве дочернего элемента с шириной и высотой match_parent и андроидом: scaleType = "centerCrop".
  • Добавить ScrollView в качестве дочернего элемента FrameLayout.

Таким образом, структура будет выглядеть следующим образом:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.gadgetcatch.alex.cardcelebration.MainActivity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/background" 
     android:scaleType="centerCrop" /> 

    <ScrollView 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
     </RelativeLayout> 

    </ScrollView> 

</FrameLayout> 

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

+0

Ваш ответ хорош, так как он решает проблему, которая у меня есть. Это не совсем то, что я хотел, но он работает. Благодаря! –

0

Добавить android:scaleType="centerCrop" android:adjustViewBounds="true" изображение заполнит весь экран, несмотря ни на что, но стороны могут быть обрезаны.

+0

Вот что я пытаюсь сказать здесь. То, что использование centerCrop и adjustViewBounds не заполняет весь экран. Он по-прежнему оставляет белую полоску внизу, когда я переношу это на устройство. –

+0

. Добавить андроид: fillViewport = «true» для ScrollView – Kiskunk

+0

Нет, все еще не работает. Я уверен, что это что-то глупое, что я просто не вижу ... –

Смежные вопросы