Изменить размер растрового изображения в списке слоев - PullRequest
5 голосов
/ 07 марта 2012

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

 _______
/______/

У меня есть следующий код:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>    
            <gradient
              android:startColor="@color/jaarkleur"
              android:centerColor="@color/jaarkleur"
              android:endColor="#E66C2C00"
              android:angle="0" />
            <stroke android:width="1dp"
            android:color="#ff000000"
            />       
        </shape>
    </item>
    <item>
        <bitmap android:src="@drawable/overlay_left" android:gravity="left"  />
    </item>
    <item>
        <bitmap android:src="@drawable/overlay_right" android:gravity="right"  />
    </item>

</layer-list>

Поэтому я сделал с изображениями так спрозрачный треугольник, который расположен на обоих концах.

Это прекрасно работает для заголовков с одной строкой, но когда заголовок занимает две строки, он выглядит так:

Итак, мой вопрос: возможно ли изменить размеры обоих изображений, чтобы они выглядели правильно?Спасибо!

Ответы [ 2 ]

10 голосов
/ 14 марта 2012

Я решил это, используя два (полупрозрачных) изображения, которые представляют углы.

XML выглядит так:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
                <shape>    
                    <gradient
                      android:startColor="@color/jaarkleur"
                      android:centerColor="@color/jaarkleur"
                      android:endColor="#E66C2C00"
                      android:angle="0" />
                    <stroke android:width="1dp"
            android:color="#ff000000"
            />       
                </shape>
        </item>
        <item>
            <bitmap android:src="@drawable/overlay_left" android:gravity="left|top"  />
        </item>
        <item>
            <bitmap android:src="@drawable/overlay_right" android:gravity="right|bottom" />
        </item>        
</layer-list>
1 голос
/ 07 марта 2012

Вместо использования списка слоев с обводкой градиента / границы и пользовательского изображения, рассмотрите возможность использования NinePatchDrawable .

Существует также удобный 9-патч Creater , который поставляется с Android SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...