Как установить icon pack на пользовательскую пусковую установку?
Я пытаюсь установить пакет значков на моей пользовательской пусковой установке, я прочитал эту заметку Как установить icon pack но я не могу понять, как использовать этот класс, вот что я сделал:
IconPackManager ic = new IconPackManager();
HashMap<String, IconPackManager.IconPack> map = new HashMap<String, IconPackManager.IconPack>(ic.getAvailableIconPacks(false));
Iterator it = map.entrySet().iterator();
Drawable d = null;
String packName = null;
IconPackManager.IconPack packIcon = null;
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
packName = (String)pair.getKey();
packIcon = (IconPackManager.IconPack)pair.getValue();
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
setIcon(d);
}
2 ответов
решается так:
String packName = null;
IconPackManager.IconPack packIcon = null;
IconPackManager ic = new IconPackManager();
HashMap<String, IconPackManager.IconPack> map = ic.getAvailableIconPacks(true);
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
packName = (String)pair.getKey(); //Get icon pack name (app package)
packIcon = (IconPackManager.IconPack)pair.getValue(); //Get icons
if(packIcon.getDrawableIconForPackage("YourTargetPackageName", yourStandardIcon) != null) {
//Your own method for set icon
setIcon(packIcon.getDrawableIconForPackage("YourTargetPackageName", yourStandardIcon));
}else{
//Your own method for set icon
setIcon(yourStandardIcon);
}
}
это работает только в том случае, если установлен какой-либо из следующих пакетов,
1) он установлен ?
org.adw.launcher.THEMES
com.gau.go.launcherex.theme
getAvailableIconPacks должен возвращать размер HashMap >0
2) ниже возвращается допустимый drawable или null?
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
использование неправильно в вашем случае.
вы повторяете имена пакетов поставщиков значков броска.Итак, в случае, если вы просите
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
//means
//d = packIcon.getDrawableIconForPackage("org.adw.launcher.THEMES",conDrawable)
итак, без установки вышеуказанных тем из google play it возвращает только чертежи по умолчанию.