Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Наложение изображений в кнопках / 25 сообщений из 92, страница 1 из 4
05.11.2014, 10:31
    #38795859
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Есть изображение кнопки, которое засунуто в ImageButton, все хорошо.
Необходимо в зависимости от состояния
- нажата
- получила фокус
- доступна
- недоступна
Менять изображение кнопки.
И вроде не вопрос, но не нравится то, что получается, что т.к. на каждой кнопке нарисован же свой текст еще,
придется для каждой кнопки, для каждого состояния иметь свое изображение, то есть будет 40 кнопок в приложении, надо будет в ресурсы засунуть 160!! изображений. Понятно, что это неадекватный подход какой-то )
Поэтому, хотел бы разделить изображение кнопки и изображение надписи на ней, чтобы иметь всего допустим 4 изображения состояния кнопки и изображения надписей по количеству кнопок. Тогда в том же примере на 40 кнопок понадобится 44 изображения - уже по божески )
Или еще лучше, если бы у ImageButton была возможность задавать свойство надписи текстом, правда не получится уже красиво, да и если разные состояния кнопки где ее изображение должно быть как бы смещено (например кнопка "утоплена" при нажатии) с обычным текстом так не прокатит - текст-то на месте останется же. В общем пока непонятно, как грамотно делать )
...
Рейтинг: 0 / 0
05.11.2014, 10:54
    #38795893
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
а зачем текст картинкой ?
...
Рейтинг: 0 / 0
05.11.2014, 10:59
    #38795904
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибса зачем текст картинкой ?
+1. Кнопка это кнопка, а её текст задается в ресурсах.
...
Рейтинг: 0 / 0
05.11.2014, 11:00
    #38795908
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибса зачем текст картинкой ?
1. красивее как бы, с тенью и т.п. )
2. не нашел у ImageButton как задать текст кнопки
3. когда кнопка нажата, надо, чтобы изображение кнопки сместить вниз, чтобы визуально создать эффект, что она нажата, что по-моему можно сделать подменив изображение на другое, заодно и текст в ней сместится, если он будет нарисован
Но засада в том, что тогда придется в приложение засовывать кучу картинок кнопок с надписями, что естественно не охота делать
...
Рейтинг: 0 / 0
05.11.2014, 11:05
    #38795914
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
...
Рейтинг: 0 / 0
05.11.2014, 13:34
    #38796193
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Прокнопкикрасивее как бы, с тенью и т.п. )

тень и так можно сделать.
а все остальное селекторами делается.
сдвиг всегда можно сделать, с помощью найнпатч + контент паддинг
...
Рейтинг: 0 / 0
05.11.2014, 14:29
    #38796330
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибстень и так можно сделать.
а все остальное селекторами делается.
сдвиг всегда можно сделать, с помощью найнпатч + контент паддинг
Хорошая мысль. Спасибо.
...
Рейтинг: 0 / 0
05.11.2014, 14:43
    #38796367
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибссдвиг всегда можно сделать, с помощью найнпатч + контент паддинг
Про найнпатч не понял правда. Пример бы какой.
Думал так:
1. рисуется две картинки под разные состояния кнопки, например обычное и кнопка нажата.
При этом для второго состояния кнопку рисуем со смещением вниз (тут пока неясно правда как сохранить изображение, чтобы сверху были прозрачные пикселы - они ж обрежутся походу при сохранении, (пробую делать в ксаре)).
2. при нажатии на кнопку селекторами устанавливаем нужное изображение

Кстати, все-таки если тень для текста на кнопке рисовать отдельно - тоже получится, что надо кучу изображений, для каждой кнопки со своей тенью для каждого текста кнопки, беда какая-то )
Видимо, тень от текста придется убрать.
...
Рейтинг: 0 / 0
05.11.2014, 15:56
    #38796487
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Да. Вариант, про текст кнопки зашитый в картинку вообще отпадает конечно, т.к. если например, добавить локализацию на неск. языках, то картинок для кнопок надо будет чуть ли не 1000 )))
...
Рейтинг: 0 / 0
05.11.2014, 18:20
    #38796652
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
у drawable можно отступ сделать. либо, если задний фон картинка, то самому ее чуть сместить.

либо вообще в drawable посмотреть top, left

по поводу текста тут сложнее, стандартная кнопка, вроде как не умеет его двигаьт, если только самому не ловить момент нажатия и не сдвигать у текста позицию.
...
Рейтинг: 0 / 0
05.11.2014, 22:40
    #38796782
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибс , да с этим немного разобрался. Спасибо.
Еще поищу как менять шрифт и устанавливать тень на текст кнопки, что-то типа shadowRadius, видимо.
...
Рейтинг: 0 / 0
06.11.2014, 23:17
    #38797861
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Не пойму как в андроид студии добавить XML с селектором - ругается, что не знает такой тег selector
Код: xml
1.
2.
3.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
....


Пишет, что элемент selector должен быть объявлен
...
Рейтинг: 0 / 0
07.11.2014, 09:29
    #38798155
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
ПрокнопкиНе пойму как в андроид студии добавить XML с селектором - ругается, что не знает такой тег selector
Код: xml
1.
2.
3.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
....



Пишет, что элемент selector должен быть объявлен
Смотря в какой папке создавать... Например, в res/drawable/ работает.
...
Рейтинг: 0 / 0
11.11.2014, 01:43
    #38801419
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
wadmanСмотря в какой папке создавать... Например, в res/drawable/ работает.
Спасибо. Хотя уже не ломается, но зато эффекта не видно:
Положил в папку drawable файл buttonsel.xml
Код: xml
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/btn2" android:state_pressed="true" />
    <item android:drawable="@drawable/btn_main" />
</selector>


На кнопке в background указал
Код: xml
1.
android:background="@drawable/buttonsel"


Но при нажатии на кнопку, ее фон не меняется, хотя изображения в btn2 и btn_main разные.
...
Рейтинг: 0 / 0
11.11.2014, 09:15
    #38801561
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Полностью не пробовал над кнопкой поработать?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_default" />
</selector>
...
Рейтинг: 0 / 0
11.11.2014, 23:05
    #38802854
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
wadmanПолностью не пробовал над кнопкой поработать?
Спасибо. Получилось. Правда.
В изначальном примере так до конца и не заработало - при получении фокуса подхватилась новая картинка, а при нажатии кнопки нет.
Создаю новые чистые проекты, там все нормально работает. Оставлю пока так.
Теперь интересно, как через селектор менять другие атрибуты, например пробую смещать текст paddingbottom-ом.
Создал в drawable по аналогии xml:
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:paddingbottom="0sp" android:state_pressed="true"/>
    <item android:paddingbottom="17sp" android:state_focused="true"/>
    <item android:paddingbottom="17sp"/>
</selector>


Но не выходит прописать в paddingbottom кнопки ссылку на этот селектор.
И выбрать дает только из значений в values\dimens.xml, но там селектор не катит.
Как-то менять на OnClick в коде? Но тогда нужно скорее всего, даже не просто OnClick, а два события:
1. кнопка нажалалась (и держится) - одно событие: сдвинули текст
2. кнопку отпустили: вернули текст обратно
Но есть ли такие события вообще.
...
Рейтинг: 0 / 0
12.11.2014, 10:35
    #38803098
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
это в drawable отдельном нужно делать, а в селекторе его и указывать потом
...
Рейтинг: 0 / 0
12.11.2014, 11:02
    #38803137
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибсэто в drawable отдельном нужно делать, а в селекторе его и указывать потом
Не понял что значит в отдельном drawable и как потом его указывать?
То есть надо создать отдельный селектор для paddingbottom (приведен выше), а потом в селекторе, который меняет фон, как-то прицепиться к селектору paddingbottom?
...
Рейтинг: 0 / 0
12.11.2014, 11:27
    #38803190
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Поиграйся с атрибутами:
Код: xml
1.
2.
3.
4.
android:shadowColor="#444444"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="9"


На обычных кнопках именно на текст влияют.
...
Рейтинг: 0 / 0
12.11.2014, 11:37
    #38803201
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
wadmanПоиграйся с атрибутами
Да. Это про тень от текста. Спасибо, красивенько.
Но текущий вопрос - это смещение текста кнопки при ее нажатии и возвращение на место, когда кнопку отпустили :)
Возможно, лучше было б отдельным топиком? )
...
Рейтинг: 0 / 0
12.11.2014, 13:14
    #38803399
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
ПрокнопкиДжибсэто в drawable отдельном нужно делать, а в селекторе его и указывать потом
Не понял что значит в отдельном drawable и как потом его указывать?
То есть надо создать отдельный селектор для paddingbottom (приведен выше), а потом в селекторе, который меняет фон, как-то прицепиться к селектору paddingbottom?

<item android:drawable="@drawable/button_default" />

вот в этом
button_default , можно попробовать поиграться со смещениями.
...
Рейтинг: 0 / 0
12.11.2014, 13:31
    #38803425
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибсвот в этом button_default , можно попробовать поиграться со смещениями.
Попробовал прописать так :)
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/b3" android:state_pressed="true" />
    <item android:drawable="@drawable/b2" android:state_focused="true" />
    <item android:drawable="@drawable/b1" android:paddingbottom="16sp" />
</selector>


Но ругается, что не видит атрибут paddingbottom.
...
Рейтинг: 0 / 0
12.11.2014, 14:26
    #38803551
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
ПрокнопкиДжибсвот в этом button_default , можно попробовать поиграться со смещениями.
Попробовал прописать так :)
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/b3" android:state_pressed="true" />
    <item android:drawable="@drawable/b2" android:state_focused="true" />
    <item android:drawable="@drawable/b1" android:paddingbottom="16sp" />
</selector>



Но ругается, что не видит атрибут paddingbottom.

а с чего вдруг селектор должен знать про такие аттрибуты ?
я же тебе говорю, в конечном drawable это нужно делать у тебя это b1
если это картинка, то оберни ее в

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap          android:src="@drawable/b1"        />
	  <padding
                android:bottom="5dp"
                android:left="0dp"
                android:right="5dp"
                android:top="0dp" />
    </item>
</layer-list>



в общем? сам поиграйся со сдвигом/
возможно в начало списка придется добавить shape прямоугольник и ему задать padding
...
Рейтинг: 0 / 0
12.11.2014, 14:58
    #38803619
Прокнопки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Джибс, В drawable создал xml button_pressed:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap          android:src="@drawable/b3"        />
        <padding
            android:bottom="200dp"
            android:left="0dp"
            android:right="200dp"
            android:top="0dp" />
    </item>
</layer-list>


В селекторе указал этот xml:
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/[color=red]button_pressed[/color]" android:state_pressed="true" />
    <item android:drawable="@drawable/b2" android:state_focused="true" />
    <item android:drawable="@drawable/b1"/>
</selector>


Запускаю, жму на кнопку, а текст не прыгает, стоит на месте )
И вообще, это ж как можно додуматься, что картинку можно оформлять вот так в xml и потом прописывать имя этого xml в бэкграунд и оно будет работать? Вот как? ) (раньше версткой и хтмл разработкой не занимался правда, может это оттуда? или строго документация по разработке в андроид?)
...
Рейтинг: 0 / 0
12.11.2014, 15:08
    #38803642
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наложение изображений в кнопках
Прокнопки, самый лучший источник информации по андроиду http://developer.android.com/intl/ru/index.html
Там и гайдлайны есть соответствующие.
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Наложение изображений в кнопках / 25 сообщений из 92, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]