2013-10-14 16 views
7

Mam ten XML rozciągliwej - tab_background_unselected:Android XML warstwa-lista: Jak ustawić górną warstwę

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/background_grey" />    
     </shape> 
    </item> 

</layer-list> 

która tworzy ten kształt:

background rectangle

i ten strzałki kształt xml rozciągliwej - tab_selected_arrow:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item> 
     <rotate 
      android:fromDegrees="45" 
      android:pivotX="-40%" 
      android:pivotY="87%" 
      android:toDegrees="45" > 
      <shape android:shape="rectangle" > 
       <solid android:color="@color/background_dark_green" /> 
      </shape> 
     </rotate> 
    </item> 

</layer-list> 

które tworzą ES Ten kształt:

top layer triangle

Używam tego rozciągliwej XML (zamiast pliku PNG) w celu stworzenia warstwy-listę:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:drawable="@drawable/tab_background_unselected"> 
    </item> 
    <item android:drawable="@drawable/tab_selected_arrow"> 
    </item> 

</layer-list> 

ale chcę ostateczny obraz ma wyglądać tak:

final image

nie wiem jak ustawić wagę strzałka (drugą pozycję i górną warstwę) do centa er | bottom ... Próbowałem używać tagu bitmap, ale akceptuje on tylko pliki obrazów.

muszę to być odkształcalne XML ponieważ

  1. muszę go mieć wewnątrz rozciągliwej selektora
  2. Nie chcę, aby to PNG i utworzyć inny plik dla każdej rozdzielczości ekranu

Odpowiedz

9

zastosowanie wewnętrznej Bitmap odkształcalne wewnątrz item i ustawić gravity na nim:

<item android:drawable="@drawable/tab_background_unselected"> 
</item> 
<item> 
    <bitmap 
     android:gravity="bottom|center_horizontal" 
     android:src="@drawable/tab_selected_arrow" /> 
</item> 
+2

Asaf powiedział, że próbował z rysunkami bitmapowymi i ma rację: nie pozwalają na rysowanie w formacie XML (właśnie poprawiłem pytanie i teraz pojawia się tag "bitmap" w "Próbowałem używać ...") –

+0

AFAIK nie ma mowy, jest błąd w API 21-22, brak vectros w elemencie bitmap tutaj :( – djdance

+0

Powinien być bardziej podświetlony: ta odpowiedź działa tylko wtedy, gdy "tab_selected_arrow" jest .png !!! – superuser