Самый верный вариант — вскрытие. С помощью APKTool распаковвывваем приложение, находим темы и удаляем оттуда все теги item, собираем назад, устанавливаем. Профит:)
Таки да, если намудрить со стилями, то получится совершенно некрасивое приложение с нечитабельным текстом. В таком случае проще найти замену приложению (ну или распаковать апк приложения и поставить стандартные стили)
Можно было пройтись обфускатором, скомпилить xml в бинарный вид, запаковать в tar.gz.bz2 и оставить тему с текстом 'вот вам архив, копайте'.
Но это не хабра-вей
Да, для любых View, только вне пределах Context нельзя будет изменить тему, они берут ее из активити (если она была передана как Context) или из приложения (если было послано приложение в Context).
Ну само хранение скинов есть статья Создаем модульное приложение (искать лень), а смена скинов — метод setTheme(int theme) для активити и getApplicationContext().setTheme(int theme) для всего приложения, в чем проблемы?
Опять же, этот класс я использую для элементов списка, метод fetchImage может вызываться несколько раз для одной и того-же ImageView, Vector создан исключительно для этого
Ой, третий пункт это четвертый, а четвертый это пятый.
3. Иконки в проекте разделены на несколько групп, одни не меняются годами, другие раз в месяц, остальные вообще динамическиее. Поэтому все указывается в секундах
1. Просто класс используется в приложении, которое отказывается запускаться без карты памяти, поэтому я не вводил проверку на существование карты памяти, а делается это двумя строчками ровно.
2. В основном используюю класс для иконок в ListView, и там таки размеры уж точно не нужны.
3. При таймауте должно выбить Exception и класс удалит файл кеша, если оный имеется.
4. Ну тут согласен
Тут дело не в картинках, а как я привел пример в статье: для ListView метод будет вызываться несколько раз для одного и того-же ImageView, соответственно будет плодится куча потоков с загрузкой одной и той же картинки
Но это не хабра-вей
if (bitmap == null) {
file.delete();
}
Тоесть если нет никакой картинки — удаляем
3. Иконки в проекте разделены на несколько групп, одни не меняются годами, другие раз в месяц, остальные вообще динамическиее. Поэтому все указывается в секундах
2. В основном используюю класс для иконок в ListView, и там таки размеры уж точно не нужны.
3. При таймауте должно выбить Exception и класс удалит файл кеша, если оный имеется.
4. Ну тут согласен