11 декабря 2011 г.

Графика из xml


       Платформа предоставляет широкие возможности по способу рисования объектов интерфейса.
Рисование с помощью xml весьма гибкое и удобное средство и, по сути, простые интерфейсы программ можно мастерить с его помощью.
Рассмотрим это на примере кнопки.
Стандартный вид:

Одним из способов задать новый вид кнопке это установить параметр android:background в ее свойствах.
В качестве значения для этого параметра будем использовать xml файл, назовем button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
            <gradient android:angle="270" android:endColor="#002F8E" android:startColor="#5F8DD3" />

            <corners android:radius="20dp" />
   <padding android:bottom="12dp" android:top="12dp" />

        </shape>
Здесь задали градиент с углом 270 градусов, начальные и конечные цвета а также скругленные углы радиусов 20.
Полный список всех параметров и свойств можно посмотреть тут.
Его необходимо создать и положить в /res/drawable в проекте.
Ставим значение android:background = “@drawable/button”
В итоге посмотрим на видоизмененную кнопку:
Но теперь кнопка никак не изменяется, если на нее нажать. Исправить это можно легко опять же прибегнув к xml.
Создадим другой файл selector_button.xml кладем его туда же.
Элемент  selector используется для определения состояний элементов, при нажатии, при выделении и т. д.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape>
        <gradient android:angle="270" android:endColor="#FFB285" android:startColor="#FF660F" />
            <corners android:radius="5dp" />

            <padding android:bottom="12dp" android:top="12dp" />
        </shape></item>
    <item><shape>
            <gradient android:angle="270" android:endColor="#002F8E" android:startColor="#5F8DD3" />

            <corners android:radius="5dp" />

            <padding android:bottom="12dp" android:top="12dp" />
        </shape></item>

</selector>

Тут указали нажатое состояние с атрибутом android:state_pressed="true" и определили новые градиентные цвета.
Определим новое значение для android:background=@drawable/selector_button
Запускаем эмулятор и после нажатия на кнопку она будет изменять свое состояние:
Все довольно просто и понятно !


Комментариев нет:

Отправить комментарий