Несколько фигур внутри shape.xml в Android - PullRequest
7 голосов
/ 18 апреля 2011

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

Наконец-то я нашел решение своего вопроса. И ответ использует уровень-список.

<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
          
        <gradient android:startColor="#aaa" 
            android:endColor="#eee" android:angle="270" />
           
        <corners android:bottomRightRadius="7dp"
            android:bottomLeftRadius="7dp" android:topLeftRadius="7dp"
            android:topRightRadius="7dp" />
    </shape>

</item>
<item android:maxLevel="1">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
          
        <gradient android:startColor="#eee" android:centerColor="#ddd"
            android:endColor="#00fff2" android:angle="270" />
           
        <corners android:bottomRightRadius="7dp"
            android:bottomLeftRadius="7dp" android:topLeftRadius="7dp"
            android:topRightRadius="7dp" />
    </shape>
</item>
</level-list>

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

Например: findViewById(R.id.mybutton).getBackground().setLevel(1);

В приведенном выше коде я устанавливаю вторую фигуру для кнопки с идентификатором mybutton.

1 Ответ

0 голосов
/ 18 апреля 2011
<?xml version="1.0" encoding="UTF-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="1dip" android:color="#FF8000" />
    <solid 
        android:color="#00FFFFFF"
        android:paddingLeft="10dip"
        android:paddingTop="10dip"/>
    <corners android:radius="10px"/>

    <padding 
        android:left="10dip" 
        android:top="10dip" 
        android:right="10dip" 
        android:bottom="10dip" /> 
</shape>

Вы можете использовать это для границы и любой формы ... для справки ... '' Если это полезно, примите ответ и проголосуйте за ответ

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