java - personalizar - ¿Cómo instalar el paquete de iconos en el lanzador personalizado?
pack de iconos android (2)
Esto funciona solo si alguno de los siguientes paquetes está instalado,
1) ¿Está instalado?
org.adw.launcher.THEMES
com.gau.go.launcherex.theme
getAvailableIconPacks debe devolver el tamaño de HashMap> 0
2) ¿Está por debajo de devolver válido dibujable o nulo?
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
El uso es incorrecto en su caso.
Están iterando los nombres de los paquetes de los proveedores de íconos de lanzamiento. También en el siguiente caso, están solicitando
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
//means
//d = packIcon.getDrawableIconForPackage("org.adw.launcher.THEMES",conDrawable)
por lo tanto, sin la instalación de temas de Google Play anterior, solo se muestran los elementos dibujables predeterminados.
Estoy tratando de instalar el paquete de íconos en mi lanzador personalizado, leí esta nota Cómo instalar el paquete de íconos pero no puedo entender cómo usar esa clase, esto es lo que hice:
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);
}
Resuelto con esto:
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);
}
}