2013-10-14 4 views
5

Мне нужна помощь, чтобы сделать фоновое изображение растягиваться или масштабироваться как по вертикали, так и по горизонтали в линейном макете. Каждый раз, когда я пытаюсь установить фон, он не растягивает изображение, чтобы оно соответствовало экрану. Меня тоже не интересует сохранение соотношения сторон.Как растянуть/масштабировать фоновые изображения в линейном формате Android?

Вот что я получил в тестовом XML на данный момент:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/title" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 
</LinearLayout> 

Что выглядит в предварительном просмотре (и в игре):

enter image description here

Если изменить layout_height для fill_parent Я получаю повторяющийся фон:

enter image description here Я уверен, что решение чрезвычайно базовый, но по какой-то причине я его пропускаю. Любая помощь будет оценена

благодаря

+0

Проблемы, кажется, что приходит с планшетным устройством ... попробуйте используйте увеличенное изображение и установите ширину и высоту на «match_parent» – MikeKeepsOnShine

+0

Пожелайте, было больше ответов здесь. –

+0

Как вы тестировали все экраны? – Sami

ответ

6

Не уверен, что варианты фона макета доступны для фона атрибута макета, но вы всегда можете просто положить ImageView в качестве первого элемента во внешней FrameLayout с максимальной шириной и высоты. Тогда все, что вы положили в макет, будет нарисовано поверх этого изображения. И, конечно же, вы можете просто загрузить требуемый тип сканирований; например, fitXY, возможно, за то, чего вы пытаетесь достичь.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<ImageView 
    android:id="@+id/background" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:contentDescription="@string/backgroundDescription" 
    android:scaleType="centerCrop"> 
</ImageView> 
... 
4

здесь важно android:scaleType параметр с одним из возможных значений:

  • матрицы
  • fitXY
  • fitStart
  • fitCenter
  • fitEnd
  • центр
  • centerCrop
  • centerInside

, если вы не возражаете изображение для croped, когда это необходимо (экран различной пропорции, чем ваш образ), и вы не хотите изображения деформироваться, я бы рекомендовал centerCrop. , если важно, чтобы изображение не было обрезано, и вы не указали, если он перекошен, чем выполнит эту работу.

Надеется, что это помогло и очистил вещи немного ...

0

Вы можете использовать scaleType с centerCrop

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

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

+0

Я думаю, что fitXY будет лучше в этом случае – Chaosit

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