Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Рисуем иконку для Notification.Builder setSmallIcon(int icon) - Программирование Android

02.08.2013, 16:49. Просмотров 1207. Ответов 8
Метки нет (Все метки)

Что для этого нужно? Можно ли зарегистрировать свой ресурс - картинку из памяти (сам рисую).
setSmallIcon требует int - код картинки из ресурсов. Но видел индикатор заряда в 4х тонах по 100 значений (%) - вряд-ли 400 картинок в ресурсах...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рисуем иконку для Notification.Builder setSmallIcon(int icon) (Программирование Android):

Как убрать маленькую иконку в правом нижнем углу notification? - Программирование Android
Здравствуйте! Как убрать маленькую иконку в правом нижнем углу notification? Добавлено через 13 часов 51 минуту То есть нужно...

Нерегулярная ошибка при автозагрузке программы: "Cannot create system shell notification icon" - C++ Builder
Здравствуйте! Ребята, подскажите, по такому вопросу у меня есть программа которая была написана мной ещё 2 года назад. В этой программе я...

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT - MySQL
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. ...

Где скачать Icon для Win7? - Программирование
Кто знает, где скачать Icon для Windows 7?

Конвертировать Image в Icon для NotifyIcon - Visual Basic .NET
Приветствую Собственно желание таково: Я хочу выводить информацию в иконке объекта NotifyIcon. Ну, там, например, какое-то число...

Несколько иконок для notifyIcon.Icon - C#
Не подскажите как добавить несколько Иконок в свой проект и потом их менять программно. Имею в виду не иконку аппликации, а иконку которая...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
02.08.2013, 17:37 #2
Цитата Сообщение от Tester64 Посмотреть сообщение
видел индикатор заряда в 4х тонах по 100 значений (%) - вряд-ли 400 картинок в ресурсах...
Не мудрено, ибо Notification != индикатор батареи.
setSmallIcon(int res) устанавливает изображение только из ресурсов (из каталога res), а рисовать его в runtime, загружать из файла и пр. не представляется возможным.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
03.08.2013, 08:39  [ТС] #3
Это я знаю! Речь шла о программе предупреждающей об окончании заряда и целом "будильнике" когда заряд меньше 17%(настраиваемо). Chargin Reminder
https://play.google.com/store/apps/d....ChargingAlert
Вскрывать не пытался, но подозреваю что можно нарисовать картинку, зарегистрировать ее в ресурсах и получить уникальный числовой/целый номер, внести номер в setSmallIcon(int icon) вместо R.drawable.ic_small_icon

Добавлено через 10 минут
Судя по картинкам, здесь еще больше вариантов цвета текста для маленькой иконки в Notification
https://play.google.com/store/apps/d...vgs.batterypro
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
03.08.2013, 15:56 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Так вот с приложения и надо было начинать.
можно нарисовать картинку, зарегистрировать ее в ресурсах и получить уникальный числовой/целый номер, внести номер в setSmallIcon(int icon) вместо R.drawable.ic_small_icon
das ist fantastisch©

Что ж, заинтриговали, скачал, просмотрел код, ресурсы..
Цитата Сообщение от Tester64 Посмотреть сообщение
видел индикатор заряда в 4х тонах по 100 значений (%) - вряд-ли 400 картинок в ресурсах...
Вы не поверите..
Вложения
Тип файла: zip drawable.zip (499.4 Кб, 30 просмотров)
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
03.08.2013, 21:53  [ТС] #5
Капец! ... хотя и (начав понимать кривизну рук разработчиков андроида) догадывался...

Добавлено через 6 минут
Поэтому все иконки такие убогие...
Неужели нет альтернативы??? Сначала запихнуть хакерски ресурс в папку drawable а потом назначить ей номер для использования...

Добавлено через 46 секунд
или даже заменять уже существующую/зарезервированую иконку...

Добавлено через 9 минут
Убил 3 часа на редактирование 125 математически сложно-зависимых иконок... Быстрее было бы написать на другом языке генератор...

Добавлено через 6 минут
еще мысль возникла - нарисовать пустую/черную/прозрачную иконку, вывести ее, вычислить (если позволят) координаты и поверху положить окно с моим рисунком как в программе Status Bar мини:
https://play.google.com/store/apps/d...atusinfo&hl=ru
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.08.2013, 22:36 #6
Цитата Сообщение от Tester64 Посмотреть сообщение
Неужели нет альтернативы???
может рефлексия?
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
04.08.2013, 19:55  [ТС] #7
может рефлексия?
Это как сказать перечитайте мегабайты исходников и возможно догадаетесь какой метод перекрыть чтобы заработало... или берите в руки дезасемблер...

Тогда другой/встречный вопрос - можно ли брать иконки из другого/чужого приложения/хранилища картинок/скинов? Поставил программу MyProgram и доставил к ней (не обязательную) программу MyProgram_skin1 и тяну иконки из его ресурсов?

Сейчас использую команду
Java
1
ResId = getResources().getIdentifier(this.getPackageName() + ":drawable/"+"small_ico_"+Str1, null, null);
И теоретически можно вместо this.getPackageName() поставить "com.myprogram.skin1". Это правильный подход?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.08.2013, 20:26 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
можно ли брать иконки из другого/чужого приложения/хранилища картинок/скинов?
да, можно, создаете контекст другого приложения, а дальше как обычно
Java
1
otherAppsContext = createPackageContext("com.example", Context.CONTEXT_IGNORE_SECURITY);
Добавлено через 5 минут
Цитата Сообщение от Tester64 Посмотреть сообщение
Это как сказать перечитайте мегабайты исходников и возможно догадаетесь какой метод перекрыть чтобы заработало... или берите в руки дезасемблер...
за 1 минуту нашел в исходниках все необходимое.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
05.08.2013, 06:01  [ТС] #9
Цитата Сообщение от V0v1k Посмотреть сообщение
за 1 минуту нашел в исходниках все необходимое
И смогли использовать? или "теоретически"?
Я думал там корни уходят довольно глубоко... Возможно даже до С++ библиотек...
Пролистал модуль Notification и кажется даже понял что можно "подменить" но примет ли предок эти модификации...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 06:01
Привет! Вот еще темы с ответами:

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Propery Icon TIcon для собственного компонента унаследованного от TCustomControl - Delphi
Добрый день! Возникла такая проблема. Создал своё компонент, всё работает. Понадобилось мне к этому компоненту добавить Параметр...

Преобразовать int в const int для установки размера массива - C++
Добрый вечер всем! Столкнулся с такой нестандартной проблемой. Нужно преобразовать значения типа int в const int, чтоб константная...

Написать функцию SUM (int M, int N) / С++ для начинающих - C++
Написать функцию SUM (int M, int N), которая вычисляет и возвращает сумму всех чисел кратных 3 и 9 в пределах от M и N включительно ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.08.2013, 06:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru