2013-10-14 24 views
5

Potrzebuję pomocy, aby obraz tła rozciągał się lub skalował zarówno w pionie, jak iw poziomie w układzie liniowym. Za każdym razem, gdy próbuję ustawić tło, nie rozciągam obrazu tak, aby pasował do ekranu. Nie przejmuję się także utrzymaniem proporcji.Jak rozciągać/skalować obrazy tła w układzie liniowym systemu Android?

Oto co mam w xml testu w tej chwili:

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

Która wygląda to w podglądzie (w grze):

enter image description here

Jeśli zmienię the layout_height to fill_parent Dostaję powtarzające się tło:

enter image description here Jestem pewien, że rozwiązanie jest ekstremalnie podstawowe, ale z jakiegoś powodu brakuje mi tego. Każda pomoc będzie mile widziane

dzięki

+0

Problem wydaje się, że wyjdzie z tabletem ... spróbuj użyj większego obrazu i ustaw szerokość i wysokość na "match_parent". – MikeKeepsOnShine

+0

Chciałbyś, żeby było więcej odpowiedzi tutaj. –

+0

Jak przetestowałeś wszystkie te ekrany? – Sami

Odpowiedz

6

Nie wiesz, co dostępne dla atrybutu tła układzie są dostępne opcje układ tła, ale zawsze można po prostu położyć ImageView jako pierwszy element w zewnętrznej FrameLayout z maksymalnej szerokości i wzrost. Następnie wszystko, co umieścisz w układzie, zostanie narysowane na górze tego obrazu. Oczywiście możesz po prostu załadować typ, który chcesz; takie jak fitXY być może do tego, co próbujesz osiągnąć.

<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

tutaj ważne android:scaleType parametrów z jednej z możliwości:

  • matrycy
  • fitXY
  • fitStart
  • fitCenter
  • fitEnd
  • centrum
  • centerCrop
  • centerInside

jeśli nie przeszkadza wizerunek być croped kiedy jest to konieczne (ekran o różnej proporcji niż obrazu) i nie chcesz być zdeformowany obraz, polecam centerCrop. jeśli ważne jest, aby obraz nie był przycięty i nie zostanie zmieniony, jeśli jest on przekrzywiony, wykona to zadanie pod fitXY.

Nadzieja to pomogło i wyczyszczone rzeczy się trochę ...

0

Można użyć scaleType z 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

Myślę, że fitXY będzie lepszy w tym przypadku – Chaosit