2012-04-21 17 views
5

Mam obraz tła, który jest podzielony na trzy oddzielne obrazy:Android App Tło: Korzystanie z wielu obrazów

backgroundTop.png 
backgroundMiddle.png 
backgroundBottom.png 

jak pójdę o wdrażaniu tło w aplikacji na Androida, w której górny obraz jest wyświetlany na do góry aplikacji, a dolny obraz na dole, a środkowy obraz jest wstawiany między? To oczywiście zależy od ilości załadowanych treści na ekranie - podobnie jak na stronach internetowych.

Innymi słowy, całkowita liczba wyświetleń kafelka środkowego zależy od tego, co jest na ekranie.

Widziałem rozwiązanie wdrożyć Dachówka tło z jednego obrazu tutaj: How to make android app's background image repeat

Działa to dobrze, jeśli używasz jednego obrazu, ale nie z wielu obrazów.

Odnośniki do poniższych przykładach, więc wiesz, co mam na myśli:

http://rockfreaks.net/images/reviewPageTop.png

http://rockfreaks.net/images/reviewPageMiddle.png

http://rockfreaks.net/images/reviewPageBottom.png

Odpowiedz

9

że można spróbować łączenia layer list drawable (jest to możliwe, aby ustawić wypustki na warstwach) z kafelkowy obraz bitmapowy, który jest umieszczony jako warstwa środkowa i umieszczony z odpowiednimi wypustkami.

coś takiego:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/page_top" /> 
    <item 
    android:insetTop="@dimen/page_top_height" 
    android:insetBottom="@dimen/page_bottom_height" 
    > 
    <bitmap 
     android:src="@drawable/page_middle_tile" 
     android:tileMode="repeat" 
     /> 
    </item> 
    <item android:drawable="@drawable/page_bottom" /> 
</layer-list> 

Ale to wszystko zależy od układu rzeczywiście.

+0

Nicea, lubię to, jeśli to Prace. – Blundell

+0

Szukałem rozwiązania dla innego problemu, a odpowiedź też mi pomogła. Używanie listy warstw jest dobrym pomysłem w wielu sytuacjach, dzięki za udostępnienie! – Stan

0

spróbować czegoś takiego:

Górny i dolny w dwóch układach z android:gravity="TOP" i "BOTTOM". Te dwa układy są skonfigurowane za pomocą android:background="@drawable/xxx.png"

Dla centrum użyj rozwiązania lub użyj ScrollView.

1

Ustaw tło jako środkowy obraz i ułóż go. (jak w pokazanym przykładzie)

Utwórz widok nagłówka, który wstawia się u góry każdej strony.

Utwórz widok stopki wstawiony u dołu każdej strony.

I umieść zawartość w środku.

Zrobiłem tutaj płaski plik, ale można łatwo wyobrazić sobie, że można go przekształcić w includes lub dowolną inną aplikację.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00FF00" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     android:layout_alignParentTop="true" 
     android:background="#FF0000" /> 

    <!-- Your content --> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     android:layout_alignParentBottom="true" 
     android:background="#0000FF" /> 

</RelativeLayout> 
  • Czerwony = Nagłówek
  • Zielony = Tiles (które byłyby dziedziczone od tematu)
  • Niebieski = stopka

enter image description here

+0

To prawie działa. Problem polega na tym, że czerwone i niebieskie części są jedynie "na wierzchu" zielonego tła. Nie scala się zgodnie z przeznaczeniem, wyraźnie widać, że na obrazie tła znajdują się dwa obrazy. Przykład: http://peecee.dk/uploads/042012/device-2012-04-21-174830_big_thumb.png –

+0

Ah, ale to staje się problemem z Twoimi zasobami. Jeśli umieścisz nagłówek i stopkę w 9 obszarach, aby zdefiniować obszary rozciągliwe i ułożysz środek w odpowiednim rozmiarze, powinieneś je bezproblemowo zintegrować. ** teoretycznie ** – Blundell

Powiązane problemy