Создаем кастомную кнопку с помощью 9-patch и state list

Обсуждение материалов, присланных читателями
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение damager82 » 26 ноя 2012, 23:00

В этом уроке мы создадим кнопку, которая в качестве фона будет использовать объект 9-patch и изменять свой фон при нажатии.

Click here to read this article!
Последний раз редактировалось damager82 27 ноя 2012, 03:00, всего редактировалось 6 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

brucemax
Сообщения: 117
Зарегистрирован: 01 апр 2012, 16:09
Откуда: Минск
Контактная информация:

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение brucemax » 27 ноя 2012, 14:47

Верхняя и левая часть рамки задают масштабируемые области, правая и нижняя – область отображения контента. На выходе мы должны получить примерно такое изображение
....
фиолетовым выделена область размещения контента
У меня фиолетовый цвет (область контента ) наоборот определяют левая и верхняя часть рамки. Да и у Вас на рисунке, если присмотреться, тоже. Может я не так чего понял?

katso
Сообщения: 5
Зарегистрирован: 13 апр 2012, 08:03

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение katso » 27 ноя 2012, 18:04

http://habrahabr.ru/company/alee/blog/136667/ тут редактор намного удобнее и понятнее

Yoric
Сообщения: 10
Зарегистрирован: 13 июл 2012, 00:35

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение Yoric » 27 ноя 2012, 19:01

Забыли добавить что имя файла обязательно должно заканчиватся на ".9"

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение rezak90 » 27 ноя 2012, 19:06

а я в основном в фотожабе делаю, там более чётче видно и удобней, поставил точку зажал шифт и ещё точку в конце и есть линия, а тута тащи её пол часа)))
R.id.team
Политика на форуме запрещена

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение KamiSempai » 27 ноя 2012, 22:20

rezak90 писал(а):а я в основном в фотожабе делаю, там более чётче видно и удобней, поставил точку зажал шифт и ещё точку в конце и есть линия, а тута тащи её пол часа)))
"Тута" сразу видно результат. К тому-же фотошоп не добавит сам дополнительное место для разметки, по краям рисунка. А если добавлять самому - это еще пол часа :)
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение rezak90 » 27 ноя 2012, 22:33

если картинка большая то мне удобней в фотошопе, а так если маленькая то в nine конечно же делаю.
R.id.team
Политика на форуме запрещена

hysteresis
Сообщения: 51
Зарегистрирован: 28 ноя 2013, 03:20
Откуда: UA

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение hysteresis » 01 дек 2013, 10:38

пожалуйста, подскажите, как открыть утилиту draw9patch?

в папке sdk/tools я нашёл только файл draw9patch.bat

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение trew » 01 дек 2013, 16:10

hysteresis писал(а):пожалуйста, подскажите, как открыть утилиту draw9patch?

в папке sdk/tools я нашёл только файл draw9patch.bat
Это она и есть. После запуска программы, нажимай File -Open -... и отрывай файл png.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

hysteresis
Сообщения: 51
Зарегистрирован: 28 ноя 2013, 03:20
Откуда: UA

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение hysteresis » 02 дек 2013, 02:49

понятно, я раньше пробовал, запускалась только командная строка, после перезагрузки все стало нормально.

Спасибо

только вот в строке файла button_background.xml

<item android:drawable="@drawable/nine_patch_button_pressed" android:state_pressed="true"></item>

выдает ошибку:

error: no resourse found that matches the given name (at 'drawable' with value "@drawable/nine_patch_button_pressed" )

создана папка drawable, в ней 2 файла nine_patch_button.9.png
и button_background.xml

вроде как по описанию сделал.

Sebler
Сообщения: 30
Зарегистрирован: 17 апр 2014, 17:50

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение Sebler » 12 май 2014, 23:35

Здравствуйте. А как сделать так, чтобы картинка НЕ растягивалась? Вставляю в ExpandableListView свою картинку для индикатора, но он растягивается по всей высоте groupView. Ширину можно настроить методом setIndicatorBounds(). Что я и делаю, и положение и ширина индикатора меня устраивают. Но вот что делать с высотой?

grecd
Сообщения: 19
Зарегистрирован: 08 мар 2013, 14:36

Re: Создаем кастомную кнопку с помощью 9-patch и state list

Сообщение grecd » 26 ноя 2014, 13:57

В Андроид Студии при попытке назначить подготовленную картинку кнопке пишет что
Failed to convert @drawable/9pb into a drawable
Не может нарисовать

Ответить