2013-10-14 17 views
7

У меня есть этот XML вытяжка - tab_background_unselected:Android XML слой-лист: Как позиционировать верхний слой

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

, который создает эту форму:

background rectangle

и эту стрелку формы XML вытяжка - 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> 

, который создает эс эта форма:

top layer triangle

Я использую этот Drawable XML (вместо PNG-файла) для того, чтобы создать слой-лист:

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

, но я хочу, чтобы финальное изображение, чтобы посмотреть как это:

final image

Я не знаю, как установить гравитацию стрелки (второй элемент и верхний слой) до процента er | bottom ... Я пробовал использовать тег bitmap, но он принимает только файлы с изображениями.

мне это нужно, чтобы быть XML вытяжкой, потому что

  1. мне это нужно, чтобы быть внутри растяжимым селектор
  2. Я не хочу, чтобы сделать его PNG и создать другой файл для каждого разрешения экрана

ответ

9

Используйте внутренний Bitmap вытяжке внутри item, и установить для него gravity:

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

Asaf сказал, что он попробовал с Drawmable Bitmap, и он прав: они не позволяют рисовать XML (я только что исправил вопрос, и теперь появляется тег «bitmap» в «Я пытался использовать ...») –

+0

AFAIK никак, есть ошибка в API 21-22, нет vectros в элементе bitmap здесь :( – djdance

+0

Должно быть больше выделено: этот ответ работает только тогда, когда «tab_selected_arrow» является .png !!! – superuser

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