Страницы

Поиск по вопросам

Показаны сообщения с ярлыком icon. Показать все сообщения
Показаны сообщения с ярлыком icon. Показать все сообщения

суббота, 11 апреля 2020 г.

Как в IntelliJ IDEA сделать значок для jar файла?

#java #jar #icon

                    
Чтобы он заменял чашку кофе :)
    


Ответы

Ответ 1



У самого jar - никак, у него иконка определяется ассоциацией файла в windows. Можно обернуть jar в exe с помощью JSmooth - и поставить иконку на ваш вкус.

вторник, 25 февраля 2020 г.

Вопрос по поводу иконок для Android. [закрыт]

#android #icon


        
             
                
                    
                        
                            Закрыт. На этот вопрос невозможно дать объективный ответ.
Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Переформулируйте вопрос,
чтобы на него можно было дать ответ, основанный на фактах и цитатах, отредактировав его.
                        
                        Закрыт 4 года назад.
                                                                                
           
                
        
Я уже полдня ищу качественные иконки для лаунчера 512x512, PNG, но для большинства
из найденных требуется лицензия, подскажите, кто где берёт иконки для своих приложений?    


Ответы

Ответ 1



Есть 3 варианта: Купить - сайтов таких полно. Заказать у дизайнера на какой-нибудь фриланс-бирже, правда, при этом надо озаботиться отчуждением авторских прав в вашу пользу, иначе потом дизайнер вам может "выкатить" - уже были прецеденты. Скачать со свободной лицензией, например, на WikiMedia Commons. Нарисовать самому не катит: каждый должен заниматься своим делом.

Ответ 2



https://www.iconfinder.com/ - я тут покупал. Недорого вообще. 15-30 рублей одна иконка.

пятница, 14 февраля 2020 г.

Не отображается иконка приложения

#java #android #android_studio #icon #apk


указал в манифесте путь к новой иконке приложения:         android:icon="@drawable/icon"
Затем сгенерировал апк и установил на другое устройство, но там иконка не отображается.
Почему?

    


Ответы

Ответ 1



В AndroidManifest.xml уберите атрибут android:roundIcon="...". Она используется для устройств Андроид 8.+ В создании иконки через New=>ImageAsset она называется Adaptive. Обычная (для всех устройств) - Legacy. Можно отключить там.

Ответ 2



1)Убедитесь что ваша иконка формата .png 2)Проверьте что ваша иконка располагается по пути drawable/icon.png 3)Сделайте очистку и пересбро делается это так В Android Studio наверху на панельку жмете Build ->Clean Project после очистки делаете пересбор Build->Rebuild Project

Ответ 3



Для иконок приложения существуют папки mipmap android:icon="@mipmap/ic_launcher" Поместите вашу иконку в эту папку, и проверьте. Или сделайте лучше так: Кликните на папку Res правой кнопкой мыши New/ImageAsset затем в поле IconType выберите LauncherIcons. Ниже, где поле Path укажите путь к вашей картинке, Android Studio сама сгенерирует нужные папки и нужные размеры иконки.

SVG спрайт не работает в firefox и IE

#html #css #svg #icon #svg_спрайт


Есть спрайт




    
    
        
     



    
    
        
     




Который вот так вызывается





В хроме работает отлично как надо
    


Ответы

Ответ 1



Можно ещё раз внимательно прочитать первую половину ответа насчет экспериментальных технологий Chrome, который не требует указания имени файла при вызове спрайта. А остальные браузеры требуют указания имени файла. #1. Вот смотрите, добавляю инлайн в HTML файл-спрайт с иконками: Работает во всех браузерах. #2. Для случая, когда спрайт оформлен в виде отдельного файла Если спрайт, в котором находится иконка является отдельным файлом, то необходимо сначала добавить этот файл в HTML Your browser does not support SVG И только потом вызывать иконку по ID из этого спрайта: Note Экспериментальные технологии Chrome в этом вызове допускают не указывать имя файла, в котором хранится иконка, но для более полной поддержки всеми браузерами лучше указывать имя файла

суббота, 8 февраля 2020 г.

Добавить иконку в EditText

#android #view #icon


Как можно добавить иконку в поле вводе EditText, Пример:



Исходник:



    


    


Ответы

Ответ 1



Самый простой вариант - это добавить к EditText такую строчку:

среда, 5 февраля 2020 г.

Как правильно создать иконки под андроид?

#android #android_studio #icon #launcher


Сгенерировал иконки, но на рвзных телефонах они по разному отображаются:







Возникает вопросы:
1. Делать ли иконки квадратными и их лаунчеры сами обрежут как надо:
2. Или делать иконки под популярные лаунчеры, самому скруглять края, переименовав
в round, circle, square.
3. В каком формате PNG, JPG, на прозрачном фоне или заливать?

Буду рад любой информации.
    


Ответы

Ответ 1



Самое простое решение - нажать правой кнопкой по пакету drawable(в res) и выбрать Image Asset. Далее вы сами можете добавить иконку,посмотреть как она будет выглядеть на разных устройствах. Также можно добавить цвет и фон.

Вшить иконку в приложение C#

#c_sharp #winforms #icon


Есть приложение, написал на C#. Реализовано через формочки.
Нужно, что бы иконка, которую я нарисовал, была "вшита" в приложение и отображалась
не только в "строке названия", но и на рабочем столе. И что бы это оставалось так и
не только на моем компе.

Если добавлять иконку через "properties", то она будет видна только в "строке названия"



А, непосредственно, на рабочем столе или в папке останется стандартный значок: 


    


Ответы

Ответ 1



Project Properties (Alt + F7) - там все указывается и настраивается на первой же вкладке. Icon and Manifest. А вы всего лишь в своем первом примере указали, какую иконку использовать конкретной форме, а не проекту (аппликации) в целом. Скомпилировав проект и получив exe-файл (я подразумеваю, что вся функциональность у Вас в проекте "выходит" в один файл без dll и прочих ресурс файлов - простите за банальное описание), то иконка аппликации будет, как Вы выразились, "вшита" и exe-файл, и, будучи перенесенным на другие компьютеры (простите опять за банальность объяснения), будет отображаться именно с "вшитой" иконкой.

понедельник, 6 января 2020 г.

Какие иконки использовать: svg или font

#svg #шрифты #icon


Я занимаюсь разработкой сайтов, дизайнов для них и скриптов довольно долго. И конечно
же, непосредственно, создание дизайна почти не обходится без добавление разнообразных
иконок, будь то иконка play или menu. 

В 2012 году для таких целей использовали, почти везде и у меня в том числе, иконки
картинками png, gif. Но, с нашими инновациями и усовершенствованием старых функций,
теперь большинство сайтов перешли на рисование иконок шрифтом (font) или же на svg.
Это позволяет сократить вес всех изображений и сделать их гибкими под разные размеры.

Но всё же, какие иконки лучше: svg или font? По моему мнению, лучше SVG, так как
легче в использовании и имеет собственные плюшки.

Какие иконки использовать: svg или font?
    


Ответы

Ответ 1



Svg потому что: Это векторный формат. Иконка может быть многоцветной. Svg можно инлайнить в html и стилизовать при помощи css. Css позволяет добавить некую интерактивность в иконку. Svg можно анимировать. Нет проблем со скринридерами. Не возникает проблем, если по какой-то причине браузер использует дефаултный шрифт.

Ответ 2



После долгого использования шрифтов-иконок, перешел на SVG и понял, что конкретно их различает по моему мнению: Легкость в освоении и использовании - тут лучше шрифты с иконками, так как нет ничего проще, вставить готовые конкретные названия иконок в CSS элемента, либо ещё проще, установить библиотеку шрифтов и просто менять класс элемента. Но теперь про функциональность и возможности - тут несомненно, как мне кажется, побеждает именно SVG, потому что с ним можно делать множество трансформаций и анимаций. Размер - собственно эти 2 технологии популярны тем, что занимают очень маленький размер памяти, и оба хорошо справляются со своей задачей. Что в итоге, мне кажется, что лучше все же SVG, так как он имеет больше возможностей для дальнейшего его изменения, а потребляет примерно столько же ресурсов.

Ответ 3



Шрифт на то и сделан, чтобы хорошо отображать мелкие символы и значки. Браузер будет гораздо лучше отображать значки в формате шрифта, чем в SVG. Он подстроится под тип экрана, настройки сглаживания шрифтов. Посмотрите мой пример. Я взял иконку из Font Awesome, выдернул ее из svg шрифта и вставил в inline svg. Специально для минусующих я сделал ее Pixel-Perfect Покрутите размер шрифта, чтобы убедиться, что шрифт сохраняет четкость при масштабировании (что и не удивительно), a SVG хорош только на 14px и на достаточно больших размерах: $('input').on("change click",function(){ $('p').css('font-size',$('input').val()+'px') }) p { font-size: 16px; } svg { width: 1em; height: 1em; } .fa { font-size: 1em; }

- Это шрифт

- Это SVG

Поскольку иконка сделана 14 на 14px а мне нужно 16px, я увеличиваю SVG и тут получается размытая лажа. (Естественно, 14px выглядят одинаково хорошо, но в этом и дело, получается, я не могу масштабировать SVG!) Никто не говорит, что SVG это плохо, SVG - это картинка и ведет себя так, как вела бы себя картинка. А шрифт на мелких размерах, сохраняет читаемость благодаря хинтингу. В SVG теряются детали, смазываются края, в общем, выглядит коряво. Конечно, всегда есть возможность сделать "Pixel-perfect" SVG (располагать вектор ровно по пикселям), чтобы картинка была четкой на нужном размере. Но тогда куда денется хваленая гибкость вектора? Что если потребуется немного увеличить иконку? А что если дизайнер нарисует вам кривой вектор? Выходит SVG - это хорошее решение только для программиста. Для программиста, которому плевать как выглядит конечный продукт. С другой стороны, если вы будете делать идеальные "Pixel-perfect" иконки и не будете изменять их размер, SVG не будет хуже (но практика показывает обратное) И, кстати, SVG еще и медленнее отрисовывается.

воскресенье, 29 декабря 2019 г.

Как масштабировать размеры иконок svg

#html #css #svg #icon #inkscape


Вот есть код:





     
          
    


При размерах 256 пикселей размер svg иконки не 256 пикселей, а где-то ~140 При указании 128, тоже не 128 и т.д. Почему так происходит? Я уже перечитал все эти мануалы, в примерах их иконки все нормально отображаются с размерами, а почему эта не работает как надо?!


Ответы

Ответ 1



Масштаб определяется соотношением viewport / viewBox, где viewport это width="X" height="Y" В вашем примере масштабирование применяется последовательно несколько раз. Очень легко запутаться. Поэтому я максимально упрощу ваш пример и поэтапно буду усложнять до практического применения Ниже пример, где применяется масштабирование только один раз в шапке svg файла viewport / viewBox = 100/100=1. Масштаб будет - 1:1 То есть как нарисовано в векторном редакторе, так и будет отражаться на дисплее На скрине векторного редактора видно, что физически иконка имеет габариты - 56.6 х 56.6px Теперь запускаем этот же файл в браузере. И для наглядности я добавил красный прямоугольник, через стили в шапке файла, который показывает границы SVG файла. style="border:1px solid red;" Границы svg определяет viewport это - width="100" height="100" Из примеров видно, что иконка 56 х 56px не полностью занимает viewport - 100 х 100px Это очень плохо, так как эти свободные пространства добавляют отступы от других элементов верстки HTML Убираем лишние отступы Для этого уменьшаем viewport до размеров иконки width="56" height="56" viewBox="0 0 58 58" Смотрим результаты в векторном редакторе и в браузере: Пример в браузере Масштабирование иконок до требуемых размеров Размер 256 x 256px Для этого увеличиваем размер viewport до требуемых размеров Размер 128 x 128px проверяем в векторном редакторе Делаем рабочую версию приложения Основное правило последовательных масштабирований в одном файле SVG В шапке файла SVG задается самый большой viewport - это прямоугольная область, которую видит пользователь на экране. Если задали width="256" height="256", то последующие масштабирования, которые идут в коде ниже могут только уменьшать размер этой области. Пример с 3 иконками 256x256; 128x128; 64x64 .alignlef { display: inline; float: left; margin-right: 1.625em; } path { fill:inherit; stroke:inherit; }


среда, 11 декабря 2019 г.

Android/Java. Как задать (увеличить) отступ иконки Navigation Drawer'a от края?

#java #android #android_toolbar #android_navigation_drawer #icon


Как задать (увеличить) отступ иконки Navigation Drawer'a от края?


    


Ответы

Ответ 1



Я думаю если человек использует Navigation Drawer, то там используется "android.support.v7.widget.Toolbar" Тогда если вы хотите сделать отступ, используйте такой пример: где android:layout_marginLeft="15dp" и есть отступ от левого края на 15dp.

воскресенье, 8 декабря 2019 г.

Лицензия на иконки

#icon #design #иконки #лицензирование


Здравствуйте,

Мы разрабатываем приложение на Android и недавно начали использовать иконки на Flaticon.com,
но тут же столкнулись с вопросом лицензии. На Flaticon нужно указывать ссылку на автора
или покупать premium доступ чтобы можно было использовать иконки в коммерческих целях.

У нас возникла идея создать свои иконки. Вопрос в следующем: если ми создадим такие
же иконки или очень похожие на те что взяли на Flaticon.com, будут ли они считаться
оригинальными и всё лицензионные права будут у нас, или это будет кража интеллектуальной
собственности и нарушение лицензии?

Спасибо!    
    


Ответы

Ответ 1



Can I use forever all the icons I download with the Premium account? Yes, everytime you download a resource, it will include a document that grant you the unlimited right to use it forever. т.е. если вы заплатили 10 баксов, то все, что вы скачали с премиум-акком можете использовать вечность, лицензия идет на скачивание и продолжается навсегда. вам жаль 10 баксов заплатить за месячный доступ и вместо этого вы готовы потратить время и ресурсы на переделку иконок? С таким подходом не очень хорошее у вас приложение получится.

Ответ 2



По поводу flaticon есть статья. Если я правильно понял, за деньги которые вы платите, вы не получаете никаких прав на иконки. Т.е. используете на свой страх и риск. Посмотрите пожалуйста эти наборы. Тут понятных два вида лицензии (платная и бесплатная). Но самое главное - что вы можете заказать для себя недостающую иконку в нужном стиле, совершенно бесплатно.

пятница, 29 ноября 2019 г.

Андроид. Java. Как программно изменить иконку приложения и его название?

#java #android #icon


Заметил, что у стандартного календаря андроид реализована следующая функция: каждый
день, в зависимости от числа месяца меняется иконка. Т.е., если сегодня 1 число, то
на иконке будет изображена цифра 1, если 31-ое, то цифра 31 соответственно.

Вопрос: как такое реализовать самому?
Вопрос 2: можно ли сделать возможным программное изменения названия приложения? Если
да, то как реализовать?
    


Ответы

Ответ 1



Добавляем разрешения Добавляем два метода: private void shortcutAdd(String name, int number) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY); // Create bitmap with number in it -> very default. You probably want to give it a more stylish look Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); Paint paint = new Paint(); paint.setColor(0xFF808080); // gray paint.setTextAlign(Paint.Align.CENTER); paint.setTextSize(50); new Canvas(bitmap).drawText(""+number, 50, 50, paint); ((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap); // Decorate the shortcut Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap); // Inform launcher to create shortcut addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(addIntent); } private void shortcutDel(String name) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY); // Decorate the shortcut Intent delIntent = new Intent(); delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); // Inform launcher to remove shortcut delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(delIntent); } В конце вешаем слушателей @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); findViewById(R.id.add).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutAdd("changeIt!", count); } }); findViewById(R.id.increment).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutDel("changeIt!"); count++; shortcutAdd("changeIt!", count); } }); } Оригинал ответа тут

суббота, 8 июня 2019 г.

Не отображается иконка приложения

указал в манифесте путь к новой иконке приложения: android:icon="@drawable/icon" Затем сгенерировал апк и установил на другое устройство, но там иконка не отображается. Почему?


Ответ

В AndroidManifest.xml уберите атрибут android:roundIcon="...". Она используется для устройств Андроид 8.+
В создании иконки через New=>ImageAsset она называется Adaptive. Обычная (для всех устройств) - Legacy. Можно отключить там.

вторник, 14 мая 2019 г.

Вопрос по поводу иконок для Android. [закрыт]

Я уже полдня ищу качественные иконки для лаунчера 512x512, PNG, но для большинства из найденных требуется лицензия, подскажите, кто где берёт иконки для своих приложений?


Ответ

Есть 3 варианта: Купить - сайтов таких полно. Заказать у дизайнера на какой-нибудь фриланс-бирже, правда, при этом надо озаботиться отчуждением авторских прав в вашу пользу, иначе потом дизайнер вам может "выкатить" - уже были прецеденты. Скачать со свободной лицензией, например, на WikiMedia Commons Нарисовать самому не катит: каждый должен заниматься своим делом.

пятница, 12 апреля 2019 г.

Добавить иконку в EditText

Как можно добавить иконку в поле вводе EditText, Пример:

Исходник:


Ответ

Самый простой вариант - это добавить к EditText такую строчку:

воскресенье, 7 апреля 2019 г.

Вшить иконку в приложение C#

Есть приложение, написал на C#. Реализовано через формочки. Нужно, что бы иконка, которую я нарисовал, была "вшита" в приложение и отображалась не только в "строке названия", но и на рабочем столе. И что бы это оставалось так и не только на моем компе.
Если добавлять иконку через "properties", то она будет видна только в "строке названия"

А, непосредственно, на рабочем столе или в папке останется стандартный значок:


Ответ

Project Properties (Alt + F7) - там все указывается и настраивается на первой же вкладке. Icon and Manifest. А вы всего лишь в своем первом примере указали, какую иконку использовать конкретной форме, а не проекту (аппликации) в целом. Скомпилировав проект и получив exe-файл (я подразумеваю, что вся функциональность у Вас в проекте "выходит" в один файл без dll и прочих ресурс файлов - простите за банальное описание), то иконка аппликации будет, как Вы выразились, "вшита" и exe-файл, и, будучи перенесенным на другие компьютеры (простите опять за банальность объяснения), будет отображаться именно с "вшитой" иконкой.

четверг, 20 декабря 2018 г.

Как масштабировать размеры иконок svg

Вот есть код:


При размерах 256 пикселей размер svg иконки не 256 пикселей, а где-то ~140 При указании 128, тоже не 128 и т.д. Почему так происходит? Я уже перечитал все эти мануалы, в примерах их иконки все нормально отображаются с размерами, а почему эта не работает как надо?!


Ответ

Интересный вопрос!
В вашем примере затронута одна из фундаментальных тем SVG - масштабирование. Поймете, как это работает и в svg будет всё легко и просто.
Масштаб определяется соотношением viewport / viewBox, где viewport это width="X" height="Y"
В вашем примере масштабирование применяется последовательно несколько раз. Очень легко запутаться. Поэтому я максимально упрощу ваш пример и поэтапно буду усложнять до практического применения
Ниже пример, где применяется масштабирование только один раз в шапке svg файла
viewport / viewBox = 100/100=1. Масштаб будет - 1:1 То есть как нарисовано в векторном редакторе, так и будет отражаться на дисплее

На скрине векторного редактора видно, что физически иконка имеет габариты - 56.6 х 56.6px
Теперь запускаем этот же файл в браузере. И для наглядности я добавил красный прямоугольник, через стили в шапке файла, который показывает границы SVG файла.
style="border:1px solid red;"

Границы svg определяет viewport это - width="100" height="100"
Из примеров видно, что иконка 56 х 56px не полностью занимает viewport - 100 х 100px
Это очень плохо, так как эти свободные пространства добавляют отступы от других элементов верстки HTML
Убираем лишние отступы
Для этого уменьшаем viewport до размеров иконки
width="56" height="56" viewBox="0 0 58 58"
Смотрим результаты в векторном редакторе и в браузере:

Пример в браузере

Масштабирование иконок до требуемых размеров
Размер 256 x 256px
Для этого увеличиваем размер viewport до требуемых размеров
Проверяем в векторном редакторе

Проверяем в браузере

Размер 128 x 128px
проверяем в векторном редакторе

Делаем рабочую версию приложения
Основное правило последовательных масштабирований в одном файле SVG
В шапке файла SVG задается самый большой viewport - это прямоугольная область, которую видит пользователь на экране. Если задали width="256" height="256", то последующие масштабирования, которые идут в коде ниже могут только уменьшать размер этой области.
Пример с 3 иконками 256x256; 128x128; 64x64
.alignlef { display: inline; float: left; margin-right: 1.625em; } path { fill:inherit; stroke:inherit; }


четверг, 4 октября 2018 г.

Андроид. Java. Как программно изменить иконку приложения и его название?

Заметил, что у стандартного календаря андроид реализована следующая функция: каждый день, в зависимости от числа месяца меняется иконка. Т.е., если сегодня 1 число, то на иконке будет изображена цифра 1, если 31-ое, то цифра 31 соответственно.
Вопрос: как такое реализовать самому? Вопрос 2: можно ли сделать возможным программное изменения названия приложения? Если да, то как реализовать?


Ответ

Добавляем разрешения

Добавляем два метода:
private void shortcutAdd(String name, int number) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY);
// Create bitmap with number in it -> very default. You probably want to give it a more stylish look Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); Paint paint = new Paint(); paint.setColor(0xFF808080); // gray paint.setTextAlign(Paint.Align.CENTER); paint.setTextSize(50); new Canvas(bitmap).drawText(""+number, 50, 50, paint); ((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap);
// Decorate the shortcut Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
// Inform launcher to create shortcut addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(addIntent); }

private void shortcutDel(String name) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY);
// Decorate the shortcut Intent delIntent = new Intent(); delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// Inform launcher to remove shortcut delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(delIntent); }
В конце вешаем слушателей
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.test); findViewById(R.id.add).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutAdd("changeIt!", count); } }); findViewById(R.id.increment).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutDel("changeIt!"); count++; shortcutAdd("changeIt!", count); } }); }
Оригинал ответа тут

Андроид. Java. Как программно изменить иконку приложения и его название?

Заметил, что у стандартного календаря андроид реализована следующая функция: каждый день, в зависимости от числа месяца меняется иконка. Т.е., если сегодня 1 число, то на иконке будет изображена цифра 1, если 31-ое, то цифра 31 соответственно.
Вопрос: как такое реализовать самому? Вопрос 2: можно ли сделать возможным программное изменения названия приложения? Если да, то как реализовать?


Ответ

Добавляем разрешения

Добавляем два метода:
private void shortcutAdd(String name, int number) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY);
// Create bitmap with number in it -> very default. You probably want to give it a more stylish look Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); Paint paint = new Paint(); paint.setColor(0xFF808080); // gray paint.setTextAlign(Paint.Align.CENTER); paint.setTextSize(50); new Canvas(bitmap).drawText(""+number, 50, 50, paint); ((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap);
// Decorate the shortcut Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
// Inform launcher to create shortcut addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(addIntent); }

private void shortcutDel(String name) { // Intent to be send, when shortcut is pressed by user ("launched") Intent shortcutIntent = new Intent(getApplicationContext(), Play.class); shortcutIntent.setAction(Constants.ACTION_PLAY);
// Decorate the shortcut Intent delIntent = new Intent(); delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// Inform launcher to remove shortcut delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT"); getApplicationContext().sendBroadcast(delIntent); }
В конце вешаем слушателей
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.test); findViewById(R.id.add).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutAdd("changeIt!", count); } }); findViewById(R.id.increment).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { shortcutDel("changeIt!"); count++; shortcutAdd("changeIt!", count); } }); }
Оригинал ответа тут