|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Есть изображение кнопки, которое засунуто в ImageButton, все хорошо. Необходимо в зависимости от состояния - нажата - получила фокус - доступна - недоступна Менять изображение кнопки. И вроде не вопрос, но не нравится то, что получается, что т.к. на каждой кнопке нарисован же свой текст еще, придется для каждой кнопки, для каждого состояния иметь свое изображение, то есть будет 40 кнопок в приложении, надо будет в ресурсы засунуть 160!! изображений. Понятно, что это неадекватный подход какой-то ) Поэтому, хотел бы разделить изображение кнопки и изображение надписи на ней, чтобы иметь всего допустим 4 изображения состояния кнопки и изображения надписей по количеству кнопок. Тогда в том же примере на 40 кнопок понадобится 44 изображения - уже по божески ) Или еще лучше, если бы у ImageButton была возможность задавать свойство надписи текстом, правда не получится уже красиво, да и если разные состояния кнопки где ее изображение должно быть как бы смещено (например кнопка "утоплена" при нажатии) с обычным текстом так не прокатит - текст-то на месте останется же. В общем пока непонятно, как грамотно делать ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:31 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
а зачем текст картинкой ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:54 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибса зачем текст картинкой ? +1. Кнопка это кнопка, а её текст задается в ресурсах. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:59 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибса зачем текст картинкой ? 1. красивее как бы, с тенью и т.п. ) 2. не нашел у ImageButton как задать текст кнопки 3. когда кнопка нажата, надо, чтобы изображение кнопки сместить вниз, чтобы визуально создать эффект, что она нажата, что по-моему можно сделать подменив изображение на другое, заодно и текст в ней сместится, если он будет нарисован Но засада в том, что тогда придется в приложение засовывать кучу картинок кнопок с надписями, что естественно не охота делать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 11:00 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, читать тут http://developer.android.com/intl/ru/guide/topics/ui/controls/button.html и https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=android imagebutton xml example ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 11:05 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопкикрасивее как бы, с тенью и т.п. ) тень и так можно сделать. а все остальное селекторами делается. сдвиг всегда можно сделать, с помощью найнпатч + контент паддинг ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 13:34 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибстень и так можно сделать. а все остальное селекторами делается. сдвиг всегда можно сделать, с помощью найнпатч + контент паддинг Хорошая мысль. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 14:29 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибссдвиг всегда можно сделать, с помощью найнпатч + контент паддинг Про найнпатч не понял правда. Пример бы какой. Думал так: 1. рисуется две картинки под разные состояния кнопки, например обычное и кнопка нажата. При этом для второго состояния кнопку рисуем со смещением вниз (тут пока неясно правда как сохранить изображение, чтобы сверху были прозрачные пикселы - они ж обрежутся походу при сохранении, (пробую делать в ксаре)). 2. при нажатии на кнопку селекторами устанавливаем нужное изображение Кстати, все-таки если тень для текста на кнопке рисовать отдельно - тоже получится, что надо кучу изображений, для каждой кнопки со своей тенью для каждого текста кнопки, беда какая-то ) Видимо, тень от текста придется убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 14:43 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Да. Вариант, про текст кнопки зашитый в картинку вообще отпадает конечно, т.к. если например, добавить локализацию на неск. языках, то картинок для кнопок надо будет чуть ли не 1000 ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 15:56 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
у drawable можно отступ сделать. либо, если задний фон картинка, то самому ее чуть сместить. либо вообще в drawable посмотреть top, left по поводу текста тут сложнее, стандартная кнопка, вроде как не умеет его двигаьт, если только самому не ловить момент нажатия и не сдвигать у текста позицию. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 18:20 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс , да с этим немного разобрался. Спасибо. Еще поищу как менять шрифт и устанавливать тень на текст кнопки, что-то типа shadowRadius, видимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 22:40 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Не пойму как в андроид студии добавить XML с селектором - ругается, что не знает такой тег selector Код: xml 1. 2. 3.
Пишет, что элемент selector должен быть объявлен ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 23:17 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиНе пойму как в андроид студии добавить XML с селектором - ругается, что не знает такой тег selector Код: xml 1. 2. 3.
Пишет, что элемент selector должен быть объявлен Смотря в какой папке создавать... Например, в res/drawable/ работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 09:29 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanСмотря в какой папке создавать... Например, в res/drawable/ работает. Спасибо. Хотя уже не ломается, но зато эффекта не видно: Положил в папку drawable файл buttonsel.xml Код: xml 1. 2. 3. 4. 5.
На кнопке в background указал Код: xml 1.
Но при нажатии на кнопку, ее фон не меняется, хотя изображения в btn2 и btn_main разные. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 01:43 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Полностью не пробовал над кнопкой поработать? Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 09:15 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanПолностью не пробовал над кнопкой поработать? Спасибо. Получилось. Правда. В изначальном примере так до конца и не заработало - при получении фокуса подхватилась новая картинка, а при нажатии кнопки нет. Создаю новые чистые проекты, там все нормально работает. Оставлю пока так. Теперь интересно, как через селектор менять другие атрибуты, например пробую смещать текст paddingbottom-ом. Создал в drawable по аналогии xml: Код: xml 1. 2. 3. 4. 5. 6.
Но не выходит прописать в paddingbottom кнопки ссылку на этот селектор. И выбрать дает только из значений в values\dimens.xml, но там селектор не катит. Как-то менять на OnClick в коде? Но тогда нужно скорее всего, даже не просто OnClick, а два события: 1. кнопка нажалалась (и держится) - одно событие: сдвинули текст 2. кнопку отпустили: вернули текст обратно Но есть ли такие события вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 23:05 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
это в drawable отдельном нужно делать, а в селекторе его и указывать потом ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 10:35 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибсэто в drawable отдельном нужно делать, а в селекторе его и указывать потом Не понял что значит в отдельном drawable и как потом его указывать? То есть надо создать отдельный селектор для paddingbottom (приведен выше), а потом в селекторе, который меняет фон, как-то прицепиться к селектору paddingbottom? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 11:02 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Поиграйся с атрибутами: Код: xml 1. 2. 3. 4.
На обычных кнопках именно на текст влияют. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 11:27 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanПоиграйся с атрибутами Да. Это про тень от текста. Спасибо, красивенько. Но текущий вопрос - это смещение текста кнопки при ее нажатии и возвращение на место, когда кнопку отпустили :) Возможно, лучше было б отдельным топиком? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 11:37 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиДжибсэто в drawable отдельном нужно делать, а в селекторе его и указывать потом Не понял что значит в отдельном drawable и как потом его указывать? То есть надо создать отдельный селектор для paddingbottom (приведен выше), а потом в селекторе, который меняет фон, как-то прицепиться к селектору paddingbottom? <item android:drawable="@drawable/button_default" /> вот в этом button_default , можно попробовать поиграться со смещениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 13:14 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибсвот в этом button_default , можно попробовать поиграться со смещениями. Попробовал прописать так :) Код: xml 1. 2. 3. 4. 5. 6.
Но ругается, что не видит атрибут paddingbottom. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 13:31 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиДжибсвот в этом button_default , можно попробовать поиграться со смещениями. Попробовал прописать так :) Код: xml 1. 2. 3. 4. 5. 6.
Но ругается, что не видит атрибут paddingbottom. а с чего вдруг селектор должен знать про такие аттрибуты ? я же тебе говорю, в конечном drawable это нужно делать у тебя это b1 если это картинка, то оберни ее в Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
в общем? сам поиграйся со сдвигом/ возможно в начало списка придется добавить shape прямоугольник и ему задать padding ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 14:26 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс, В drawable создал xml button_pressed: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В селекторе указал этот xml: Код: xml 1. 2. 3. 4. 5. 6.
Запускаю, жму на кнопку, а текст не прыгает, стоит на месте ) И вообще, это ж как можно додуматься, что картинку можно оформлять вот так в xml и потом прописывать имя этого xml в бэкграунд и оно будет работать? Вот как? ) (раньше версткой и хтмл разработкой не занимался правда, может это оттуда? или строго документация по разработке в андроид?) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 14:58 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, самый лучший источник информации по андроиду http://developer.android.com/intl/ru/index.html Там и гайдлайны есть соответствующие. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 15:08 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки (раньше версткой и хтмл разработкой не занимался правда, может это оттуда? ) Ага - как бы не так - верстка андроида это вообще непонятная вещь и книг по обучению ей нет. Если в CSS я мог что угодно сделать - то в андроиде "надо чесать репу". Выделение кнопки при нажатии - это фигня. А вот как сделать утопленную кнопку - т.е. переключатель ввиде кнопки? В скрине только подложка в виде прозрачного PNG краев там и фона никакого нет и при нажатии кнопка реально "вжимается" - т.е. утопляется - это все нарисовано только на css без использования программного кода - вот как такое сотворить на андроиде? Вот пожмякайте сами : https://www.aviba.ru/ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 16:42 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Микола Питерскийэто все нарисовано только на css без использования программного кода - вот как такое сотворить на андроиде? Думаю, разместить рядом два ImageButton и при клике скриптом менять картинки на них. То есть две кнопки, 4 картинки. Правда до ImageButton не добрался еще ) И с паддингом так и неясно пока ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 16:59 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Микола Питерскийбез использования программного кода Точно. Если без кода, то фиг знает ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:08 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, если Гуру не покажут как это сделать - сам такое не сделаешь !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:10 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиМикола Питерскийэто все нарисовано только на css без использования программного кода - вот как такое сотворить на андроиде? Думаю, разместить рядом два ImageButton и при клике скриптом менять картинки на них. То есть две кнопки, 4 картинки. В показанном примере фоны, градиенты, закругленные края и 3d утопленной кнопки и выпуклой - это не изображения а возможности CSS, в прозрачном квадратном изображении только самолетик - все остальные "красивости" это не изображение. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:16 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Микола Питерский , классно, понимаю негодование :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:25 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Дались вам эти кнопки на css? Пользуйтесь тем, что предлагает андроид. http://angrytools.com/android/button/ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:27 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadman, а можно ли WebView сделать прозрачным и можно ли из него отловить нажатие кнопки? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 17:43 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Микола ПитерскийПрокнопки (раньше версткой и хтмл разработкой не занимался правда, может это оттуда? ) Ага - как бы не так - верстка андроида это вообще непонятная вещь и книг по обучению ей нет. Если в CSS я мог что угодно сделать - то в андроиде "надо чесать репу". Выделение кнопки при нажатии - это фигня. А вот как сделать утопленную кнопку - т.е. переключатель ввиде кнопки? В скрине только подложка в виде прозрачного PNG краев там и фона никакого нет и при нажатии кнопка реально "вжимается" - т.е. утопляется - это все нарисовано только на css без использования программного кода - вот как такое сотворить на андроиде? Вот пожмякайте сами : https://www.aviba.ru/ хочешь расскажу ? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 18:43 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиЗапускаю, жму на кнопку, а текст не прыгает, стоит на месте ) И вообще, это ж как можно додуматься, что картинку можно оформлять вот так в xml и потом прописывать имя этого xml в бэкграунд и оно будет работать? Вот как? ) (раньше версткой и хтмл разработкой не занимался правда, может это оттуда? или строго документация по разработке в андроид?) текст и не будет. если только программно его не сдвигать. просто он в отличие от бекгроунда рисуется, можно сказать на канве. есть варинт просто дополнить как нужно в своей реализации кнопки, переписав Draw метод ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 18:53 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс, свою кнопку сделать проще, согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 18:59 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибсесть варинт просто дополнить как нужно в своей реализации кнопки, переписав Draw метод Только так и вообще никак? Эта пичаль. Его ж еще найти надо где-то этот Draw метод ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 23:06 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ДжибсМикола Питерскийпропущено... Ага - как бы не так - верстка андроида это вообще непонятная вещь и книг по обучению ей нет. Если в CSS я мог что угодно сделать - то в андроиде "надо чесать репу". Выделение кнопки при нажатии - это фигня. А вот как сделать утопленную кнопку - т.е. переключатель ввиде кнопки? В скрине только подложка в виде прозрачного PNG краев там и фона никакого нет и при нажатии кнопка реально "вжимается" - т.е. утопляется - это все нарисовано только на css без использования программного кода - вот как такое сотворить на андроиде? Вот пожмякайте сами : https://www.aviba.ru/ хочешь расскажу ? ) Очень хочу. И знаю что это можно сделать т.к. в андроиде есть все что есть в css - только надо уметь это "готовить". И тут 2 пути: либо искать приложение, в котором есть такие красивости и смотреть как сделано, или получить подсказку от Гуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 08:51 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Может у кнопки в андроиде есть событие/метод типа botton_pressed? (дабы в коде текст кнопки подрыгать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 10:23 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиДжибсесть варинт просто дополнить как нужно в своей реализации кнопки, переписав Draw метод Только так и вообще никак? Эта пичаль. Его ж еще найти надо где-то этот Draw метод ) х/з , в голову что то ничего не приходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 10:24 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиМожет у кнопки в андроиде есть событие/метод типа botton_pressed? (дабы в коде текст кнопки подрыгать)) Как отлавливать тач и рисовать примерно показано тут 15495889 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 10:33 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиМожет у кнопки в андроиде есть событие/метод типа botton_pressed? (дабы в коде текст кнопки подрыгать)) не совсем так, там подход от дравейбл стейтов. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 11:46 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanКак отлавливать тач и рисовать примерно показано тут С дрыганьем текста получилось, большой спасиб. Теперь вопросы такие возникли, к джаве относятся, возможно, но с ней тоже не делал ничего ) Кнопка и текст, понятное дело, растягиваются, на разных экранах будут выглядеть по-разному. То есть надо задавать некое относительное смещение. Как понимаю, в лоб, вычисляем высоту кнопки, высоту шрифта и от этого отталкиваться, задавая приемлемое смещение в %-тах? Или можно обойтись без джава, а например, используя какие-то подходящие единицы измерение sp, dp или еще какие и как в Джава задать атрибут кнопки padding_bottom (пока нашел только .setPadding(,,,), но ест только Int похоже)? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 16:53 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, если сам рисуешь, то и сам считаешь. Логично же. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:01 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
И еще. То есть в методе OnCreate активити, по айди обращаюсь к кнопке, переопределяю метод OnTouchListener: Код: java 1. 2. 3. 4. 5.
Но пока не понял, почему внутри onTouch не могу обращаться к btn1, пока не объявлю ее как final. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:02 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиИ еще. То есть в методе OnCreate активити, по айди обращаюсь к кнопке, переопределяю метод OnTouchListener: Код: java 1. 2. 3. 4. 5.
Но пока не понял, почему внутри onTouch не могу обращаться к btn1, пока не объявлю ее как final. во первых, все логично. во вторых, зачем onTouch. в третьих есть он click и последнее всегда тебе передают View v что равнозначно твоему btn1 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:07 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanЕсли сам рисуешь, то и сам считаешь. Логично же. Так-то да. Просто пока не очень осознаю ед. измерения какие для чего, думал, может есть некие относительные единицы, типа задал падингботтом 20sp и независимо от разрешения, растянутости кнопки он сам все посчитает в пикселах и нарисует красиво ). А если считать самому, то придется и начальное положение тоже прорисовывать самому выходит, т.к. запомнить положение текста до нажатия у меня не получается пока (ну чтобы потом вернуть его на место, когда кнопку отпустили, с Джавой не очень дружен пока). И еще придется перерисовывать тогда кнопки при ресайзе окна (перевороте экрана в частности). В общем какой-то геморрой ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:08 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс1. зачем onTouch. если есть он click? 2. последнее всегда тебе передают View, что равнозначно твоему btn1 (процитировал, как воспринял)) 1. в онклик же не передается состояние нажата или отпущена - просто клик нет? 2. то есть вместо буттон лучше писать view при обращении к буттон по id типа все равно наследник? (или не понял, но не уверен, что так лучше) 3. про final так и не понял пока ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:14 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиИ еще придется перерисовывать тогда кнопки при ресайзе окна (перевороте экрана в частности). В общем какой-то геморрой ) Хотя под переворот отдельный активити же делается, где прописывается все то же самое. Так? Не нравится только дублирование кода. Это не норма по-моему. По-хорошему, создать бы один раз класс кнопок с дрыгающимся текстом и потом втыкать его на формы... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2014, 17:29 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Чтобы лучше понять, как посчитать, хотелось бы знать высоту кнопку и высоту шрифта. Пишу просто: Код: java 1.
Но getHeight дает 0 почему-то. А может есть и проще спобы пофиксить относительное положение текста на кнопке независимо от того как кнопка растягивается и на каком разрешении экрана работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 15:56 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиНо getHeight дает 0 почему-то. Нужно знать, где вызывать: после создания всех вьюх, дернуть measure главной вьюхи (активити или фрагмент) и только тогда спрашивать размеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 16:11 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanНужно знать, где вызывать: после создания всех вьюх, дернуть measure главной вьюхи (активити или фрагмент) и только тогда спрашивать размеры. Вызываю в onCreate активити. Что за метод measure пока не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 16:18 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиВызываю в onCreate активити. https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=android after view created ПрокнопкиЧто за метод measure пока не понял. https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=android measure view ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 16:37 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadman , спасибо большое, получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 16:48 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Еще какая-то непонятка: 1. в onCreate активити вызываю measure кнопки. Код: java 1.
2. выставляю размер текста кнопки в процентном соотношении к высоте кнопки через setTextSize типа: Код: java 1.
При этом текст кнопки становится огромным больше самой кнопки 3. Если же посмотреть что получается по цифрам: Код: java 1.
Выводит на кнопку 231/ 77 То есть в setTextSize выставляется 231, хотя по соотношению должно получиться 77. Как таг? ) Есть подозрение, что например setTextSize выставляет размер шрифта в одних единицах изм., а getTextSize выдает размер в других единицах. То есть в getTextSize выставили 77, а в getTextSize получим уже большую цифру. (и это подтверждается на практике, тупо забил 77 в setTextSize а getTextSize возвращает 231). Вопрос , как бы задать размер шрифта, чтобы он соотносился с высотой кнопки? Например, 40% от текущей высоты кнопки? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 18:05 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
setTextSize выставляет значение в sp unit ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 20:43 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
предвидя твой следующий вопрос, да решение есть. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2014, 20:46 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс , спасибо, теперь все получилось до конца. Вот только сам код.... Пишу типа: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
То есть код дублируется и по-хорошему, создать бы отдельный метод внутри этого метода и вызвать его, давая на вход кнопку и смещение для надписи, но как в Java создавать методы внутри методов, если такое возможно, наверно надо создать отдельный класс, в нем нужные методы и их вызывать, это буду читать про джаву ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 11:50 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 14:07 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс , да. Это оказалось довольно просто. Спасибо. Теперь бы создать некий класс активити, в котором переопределить метод onCreate (чтобы в нем по умолчанию форматировались все кнопки, которые есть на активити). И дальше уже в проекте создавать новые активити, наследуя их от этого с переопределенным onCreate, но не динамически в коде создавать конечно, а именно обычным способом. То есть как не писать этот код в каждой активити да еще для каждой кнопки? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 15:11 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, а принципы ООП слабо использовать? То есть создать наследника кнопки и вставлять его уже в xml? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 15:23 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanТо есть создать наследника кнопки и вставлять его уже в xml? Начинаю создавать подкласс в отдельном файле: Код: java 1. 2.
Но не пойму пока как переопределять методы? То есть каждый метод базового класса Button имеет наверно какие-то свои вх.исх. параметры по умолчанию и при переопределении метода, надо их же упомянуть так? Если так, то как в студии найти некую спецификацию метода класса? Или все как-то проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 16:01 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиИли все как-то проще? Нажать Alt+Insert? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 16:12 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanНажать Alt+Insert? Вах, классно. Похоже, оно, хотя до конца не разобрался, но приложение скомпилировалось после добавления через Alt+Ins строк Код: java 1. 2. 3.
Правда когда прописал в xml формы вместо Button MyButton: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Кнопка потеряла фон из селектора и приложение ломается при старте, хотя вроде и компилируется. (сам класс создан в отдельном файле в папке java): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
То есть xml не видит этот класс? или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 16:54 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, нужно прописывать полный "путь" до класса, с пакетами. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 19:44 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanнужно прописывать полный "путь" до класса, с пакетами. Путь прописал, но теперь тупо ломается при запуске: Класс кнопки MyButton (пока перерисовку убрал практически пустой): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В активити прописал вместо Button Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Компилится, а на ADB не стартует ("К сожалению myapplication было остановлено") Если в разметке вернуть обратно обынчую кнопку, то работает, то есть что-то не то с подклассом MyButton, а что неясно ) И полезно было бы наверно научиться понимать в чем причина ибо сейчас только тыком, но ведь пишутся же логи типа: Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet] at java.lang.Class.getConstructorOrMethod(Class.java:472) at java.lang.Class.getConstructor(Class.java:446) at android.view.LayoutInflater.createView(LayoutInflater.java:568) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) at android.app.Activity.setContentView(Activity.java:1929) at com.example.user.myapplication.MainActivity.onCreate(MainActivity.java:21) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Но как по ним понять в чем причина ошибки... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 11:24 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
что у тебя там at com.example.user.myapplication.MainActivity.onCreate(MainActivity.java:21) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 11:55 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибсчто у тебя там at com.example.user.myapplication.MainActivity.onCreate(MainActivity.java:21) Там onCreate активити: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
В частности по ctrl+g ->21 встает на камент Код: java 1.
Вот полный лог автор11-21 10:34:04.203 1248-1248/com.example.user.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.user.myapplication, PID: 1248 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.myapplication/com.example.user.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.example.user.myapplication.MyButton at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.example.user.myapplication.MyButton at android.view.LayoutInflater.createView(LayoutInflater.java:603) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) at android.app.Activity.setContentView(Activity.java:1929) at com.example.user.myapplication.MainActivity.onCreate(MainActivity.java:21) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet] at java.lang.Class.getConstructorOrMethod(Class.java:472) at java.lang.Class.getConstructor(Class.java:446) at android.view.LayoutInflater.createView(LayoutInflater.java:568) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) at android.app.Activity.setContentView(Activity.java:1929) at com.example.user.myapplication.MainActivity.onCreate(MainActivity.java:21) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) И в нем не нравится вот это: Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.example.user.myapplication.MyButton Оно? Ошибка надувания класса? ))) И что не так? ) Может надо как-то инициализировать в основной форме этот подкласс MyButton? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 13:41 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
А вообще Код: java 1.
показывает на Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 13:49 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Можешь примеры разных кнопок посмотреть https://github.com/search?utf8=?&q=android button ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 13:53 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
вообщем, судя по ошибке, данный конструктор отсутствует. public MyButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2014, 10:49 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
авторМожешь примеры разных кнопок посмотреть Спасибо, интересно и полезно, посмотрю. Джибсвообщем, судя по ошибке, данный конструктор отсутствует. Конструктор добавил по Alt+Ins, второй вариант (с первым не работало, со вторым заработало, но только на одной машине, на второй пока никак, падает точно так же). То есть, не могу даже создать просто подкласс для Button, в котором в OnCreate записать свой код и переопределить метод onTouch. В коде основной активити получается переопределить методы кнопок, а создать отдельный подкласс кнопки с уже переопределенными методами и потом просто вставлять его в разметку как-то не очень. Не ясно как переопределять методы, т.к. не достать их спецификацию да и вообще надо джаву повтыкать конечно. Пишу так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Компилится, но при старте ругается на строку setContentView(R.layout.activity_main); в onCreate основной активити. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 11:18 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопки, ух ты как нарисовал-то... Я создал класс и через Alt+Ins достал onTouchEvent. Зачем тут еще листенер? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 11:35 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadman , не очень понимаю видимо, про лисеннеры, а так да заработало почти. По Alt+Ins действительно, там можно найти нужные шаблоны спецификаций методов и т.п. Удобно, спасибо. Непонятно только зачем столько перегрузок конструктора для того же Button достаточно же одного или это для разных версий API? И каким образом из них можно выбрать нужный тебе или надо автоматом писать все? (но тогда ведь фиг поймешь сходу, в какой из них писать свой код) И еще снова селектор бэкграунда перестал теперь работать ) Буквы скачут, а фон не меняется, хотя в селекторе ничего не менял ) Класс кнопки: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Наверно что-то не то с onTouchEvent, раньше, когда фон кнопки перерисовывался селектором в onTouchEvent я возвращал False, сейчас же, чтобы текст "прыгал" приходится возвращать true, хотя и если false возвращать, то фон все равно не меняется, а текст при этом начинает "прыгать" криво ) Пробовал еще не селектором, а сразу в onTouchEvent выставлять setBackgrouund, но неясно как туда прописать имя ресурса: setBackground(R.drawable.button_pressed); setBackground(drawable.button_pressed); ни в кавычках никак не лезет, и по хинту непонятно что писать, при старте ругается, типа не может преобразовать int в Drawable, хотя в примерах Android так и пишут: layout.setBackgroundResource(R.drawable.ready); Или есть некий тип Drawable, типа канвы, на которой надо что-то нарисовать или указать ресус, а потому уже этот Drawable засунуть в setBackground? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 15:40 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиИ каким образом из них можно выбрать нужный тебе или надо автоматом писать все? (но тогда ведь фиг поймешь сходу, в какой из них писать свой код) Не понятно, зачем в данном случае вообще переписывать конструктор? Но делается обычно это так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
И все таки, сходи на гитхаб. Посмотри как другие делают. Теоретизировать можно бесконечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 15:48 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadmanНе понятно, зачем в данном случае вообще переписывать конструктор? Но делается обычно это так. 1. конструктор это же код, который создает сам объект класса в памяти так? значит вроде как, чтобы сразу при создании сделать то, что хотелось бы сделать при создании, в данном случае отрисовать. или это в какое другое событие лучше засунуть? 2. насчет делается обычно это так все равно неясно зачем столько раз Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
public MyButton(..... надо ее писать? Конечно, еще поковыряю те примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 17:00 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Прокнопкиили это в какое другое событие лучше засунуть? 1. Отрисоваться кнопка должна по запросу системы 2. В он тач нельзя отрисовывать, нужно лишь менять состояние (нажата, отжата, хотя по идее кнопка и так должна это отслеживать, но скорее всего в привате). 3. Есть обработчик для отрисовки... Ты видимо не то что на гитхаб не сходил, но и это пропустил 15495889 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 17:17 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
wadman1. Отрисоваться кнопка должна по запросу системы 2. В он тач нельзя отрисовывать, нужно лишь менять состояние (нажата, отжата, хотя по идее кнопка и так должна это отслеживать, но скорее всего в привате). 3. Есть обработчик для отрисовки... Ты видимо не то что на гитхаб не сходил, но и это пропустил 2, 3. конечно ссылку смотрел, но имею в виду не отрисовку непосредственно на канве, а в частности подмену бэкграунда кнопки по селектору и с этим вроде бы получилось, но только методом тыка. Если, условно, пишем так в MyButton: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
То селектор не отрабатывает, переписал так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Так и не пойму правда, как вызывать метод кнопки setBackground, что туда передавать, в примерах, как писал выше передают строку-ссылку на ресурс например, а реально в коде не дает так делать или тоже не там вызываю. А масштабирование текста его да, все же засунул в onDraw - здесь хотя бы уже по канвасу можно определить размеры кнопки, как понимаю. И еще интересно где найти вывод System.out.print? Хотя может он и не нужен особо, дебаг в студии вполне удобный конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 16:17 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиА масштабирование текста его да, все же засунул в onDraw - здесь хотя бы уже по канвасу можно определить размеры кнопки, как понимаю. Ага. Фиг там. Масштабирование он в onDraw засунул ) Картина получается, при вызове в onDraw setpadding, тот в свою очередь, похоже снова вызывает ведь onDraw. Засада какая-то в общем ) Как бы масштабирование-то текста кнопки прописать? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 16:53 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Переписал с флагом, чтобы вызов проходил только один раз как бы (но ощущение, что это решение через ж..у): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 17:22 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
в общем-то, можно было и готовые решения посмотреть http://stackoverflow.com/questions/7676986/how-to-move-buttons-text-when-state-is-pressed ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 18:09 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс , вот оно! setBackgroundResource! Кто ж знает как найти именно этот готовый пример, даже гуглом не умею пользоваться ) Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 21:57 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибс , кстати в этом примере нет масштабирования смещения с фиксом-то понятно, что можно сразу в онтач все засунуть, а если с масштаированием, то как понимаю, все же тока в onDraw с вытекающими нюансами? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2014, 21:59 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
С масштабированием возникает еще засада. Если как сейчас масштабировать только по вертикали (типа чтобы текст был всегда по высоте например 0.3 от высоты кнопки), то если кнопка например ближе к квадратной, а надпись достаточно длинная, то отмасштабировав надпись по высоте, получим, что она вылезет за края кнопки по горизонтали, то есть надо еще масштабировать по длине и вопрос тогда: Как определить ширину надписи на кнопке? (будем считать, что текст на кнопке в любом случае пишем в одну строку). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2014, 10:03 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ПрокнопкиКак определить ширину надписи на кнопке? (будем считать, что текст на кнопке в любом случае пишем в одну строку). в объекте Paint смотри вроде там есть ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2014, 10:33 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Еще интересное поведение. Если вообще убрать setPadding из onDraw, а только переключать изображения в onTouchEvent через setBackgroundResource, то setPadding все равно каким-то чудом отрабатывает при нажатии. Если же setPadding прописать, то получается, что текст скачет некрасиво - сначала он смещается по некоему автоматическому падингу, а потом прыгает на то место, которое прописано в setPadding в коде кнопки. Что за автоматическое изменение падинга при нажатии? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2014, 11:48 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
ничего не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2014, 20:53 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Джибсничего не понял. По порядку: 1. переписали обработчик, который через setPadding смещает текст при нажатии кнопки Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
2. Смотрим за поведением и видим, что при нажатии на кнопку, текст сначала прыгает в одно место, а потом другое (еле заметно, если координаты примерно совпадают), появляется подозрение, что текст кто-то дергает и без onTouchEvent, поэтому убираем этот onTouchEvent, то есть остается только setBackgroundDrawble для смены фона кнопки. 3. Запускаем, жмем и о чудо - текст при нажатии сам прыгает практически как надо. Не понятно, но пока оставил так. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2014, 23:21 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
Еще интересно, есть ли в горизонтальном лэйауте возможность уменьшить расстояние между находящимися в нем view? В частности, чтобы две кнопки например были бы всегда очень плотно "прилеплены" друг к другу торцами. И следующий вопрос все то же самое, но если торцы не строго прямоугольной формы и дополняют друг друга (типа у одной кнопки выпуклый торец, у другой впуклый)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2014, 12:13 |
|
Наложение изображений в кнопках
|
|||
---|---|---|---|
#18+
По пред. вопросу, так понял, что зависит от самой фоновой картинки - если фон простой, то и слепить кнопки не проблема вообще. Если же торцы картинки/кнопки сложной формы, то немного сложнее, но и фиг с ним, обойдемся пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2014, 12:33 |
|
|
start [/forum/topic.php?all=1&fid=13&tid=1331498]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
125ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 499ms |
0 / 0 |