2012-06-20 2 views
1

Так что я пытаюсь наложить изображение карты с помощью прозрачного девятикратного рисования с помощью слоя-списка. Как это:Android: NinePatch и LayerList

target http://f.cl.ly/items/2b1x3c3o0w3t1z0b2o2s/Screen%20Shot%202012-06-20%20at%2010.34.18%20AM.png

Но все, что я получаю это (обратите внимание, что карта изображение обрезается по краям ninepatch, даже если он должен быть прозрачным):

problem http://f.cl.ly/items/380j3E2w452Y2D2d1K0a/Screen%20Shot%202012-06-20%20at%2010.29.45%20AM.png

Вот мой слой-лист код:

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <nine-patch android:src="@drawable/myninepatch" /> 
    </item> 
    <item android:drawable="@drawable/detail_map"/> 
    </layer-list> 

и вот мой макет ImageView:

<ImageView 
     android:layout_width="298dp" 
     android:layout_height="106dp" 
     android:layout_gravity="center" 
     android:layout_marginBottom="11dp" 
     android:src="@drawable/detail_map_overlay" /> 

Edit: Вот ninepatch .png:

ninepatch http://f.cl.ly/items/0X3N0d331Q15380D093n/myninepatch.9.png

Любые идеи, как этого добиться? Не обязательно использовать девять патчей, но я хочу сделать его растяжимым в зависимости от размера изображения. Или, если у вас есть идея, как сделать внутреннее свечение, это тоже набухает.

+0

можете ли вы предоставить свой 9-патч (или его увеличение) в вашем que чтобы увидеть, есть ли проблема с ним? –

+0

, конечно, я добавлю его в сообщение, спасибо! –

+0

Не забыли ли вы нижнюю и правую черную полосу для заполнения? – VinceFR

ответ

3

Резюмируя замечания и сделать его более понятным для дальнейшего чтения

Вы 9 патч не является действительным:

  • верхней и левой части определить только растяжению области.
  • нижний и правый, положение содержимого.

С вашим примером, он будет делать что-то вроде этого (на основе ваших, но без ненужных частей):

9 patch corrected

Затем установите его в качестве фона вашего ImageView:

<ImageView 
    android:layout_width="298dp" 
    android:layout_height="106dp" 
    android:layout_gravity="center" 
    android:layout_marginBottom="11dp" 
    android:src="@drawable/detail_map" 
    android:background="@drawable/myninepatch"> 
</ImageView> 

Как вы можете избавиться от списка слоев

+0

карта должна быть фоном и девятикратным src, правда, правильно? –

+0

9-patch как src не работает. Это должно быть в качестве фона. Это будет проблемой для прозрачности на краю 9 патча. Сохраните LayerList ... –

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