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

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

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

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

по поводу текста тут сложнее, стандартная кнопка, вроде как не умеет его двигаьт, если только самому не ловить момент нажатия и не сдвигать у текста позицию.
...
Рейтинг: 0 / 0
Наложение изображений в кнопках
    #38796782
Прокнопки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс , да с этим немного разобрался. Спасибо.
Еще поищу как менять шрифт и устанавливать тень на текст кнопки, что-то типа shadowRadius, видимо.
...
Рейтинг: 0 / 0
Наложение изображений в кнопках
    #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
Наложение изображений в кнопках
    #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
Наложение изображений в кнопках
    #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
Наложение изображений в кнопках
    #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
Наложение изображений в кнопках
    #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
Наложение изображений в кнопках
    #38803098
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это в drawable отдельном нужно делать, а в селекторе его и указывать потом
...
Рейтинг: 0 / 0
Наложение изображений в кнопках
    #38803137
Прокнопки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибсэто в drawable отдельном нужно делать, а в селекторе его и указывать потом
Не понял что значит в отдельном drawable и как потом его указывать?
То есть надо создать отдельный селектор для paddingbottom (приведен выше), а потом в селекторе, который меняет фон, как-то прицепиться к селектору paddingbottom?
...
Рейтинг: 0 / 0
Наложение изображений в кнопках
    #38803190
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиграйся с атрибутами:
Код: xml
1.
2.
3.
4.
android:shadowColor="#444444"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="9"


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

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

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


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