Могу ли я использовать несколько фигур в одном Android? - PullRequest
18 голосов
/ 19 января 2011

Я пытаюсь определить общий фон для использования в LinearLayout, который часто используется моим приложением во многих его действиях.Этот конкретный макет представляет собой заголовок, который отображается в верхней части каждого действия.

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

Кто-нибудь знает, возможно ли это, или я должен делать подобные вещи только с вложенными макетами?

Моя попытка нарисовать xml -

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#AA000000" android:endColor="#AA333333"
        android:angle="270" />
</shape>
</item>
<item>
<shape android:shape="line">
    <stroke android:width="3dp" android:color="#FFFFFFFF"
            android:dashWidth="1dp" android:dashGap="2dp" />
    <size android:height="5dp" />
</shape>
</item>
</selector>

Ответы [ 2 ]

32 голосов
/ 20 января 2011

Drawable принимает несколько фигур (определяется всегда в других файлах), если я понимаю ваш вопрос, может быть, вы можете сделать Layer Drawable (это рисует несколько основных Drawables друг на друга)

Я пишу это здесь, так что я не проверял, но попробуйте это и прочитайте эту фантастическую документацию.

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

Android полные ресурсы XML

ура

3 голосов
/ 01 мая 2018

Используйте Гравитация , чтобы задать элементы в списке слоев .

    for vertical orientation use:
    android:gravity="top"
    android:gravity="center"
    android:gravity="bottom"
    for horizontal orientation use:
    android:gravity="left"
    android:gravity="center"
    android:gravity="right"
<layer-list
           xmlns:android="http://schemas.android.com/apk/res/android">
          <item>
                <bitmap
                   android:src="@drawable/top_img"
                   android:gravity="top"/>
          </item>
          <item>
                <bitmap
                   android:src="@drawable/center_img"
                   android:gravity="center"/>
          </item>
          <item>
                <bitmap
                   android:src="@drawable/bottom_img"
                   android:gravity="bottom"/>
          </item>
</layer-list>

Убедитесь, что в родительском элементе достаточно места для хранения всех элементов! В противном случае они будут перекрывать друг друга

...