2017-03-12 2 views
22

Ich versuche Icon Pack auf meinem benutzerdefinierten Launcher zu installieren, ich diese Notiz How to install icon pack gelesen habe, aber ich bin zu verstehen, nicht in der Lage, wie diese Klasse zu verwenden, hier ist was ich getan:Wie Icon Pack auf benutzerdefinierten Launcher installieren?

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); 
    } 
+0

Ein IconPackManager ist kein Standard-Android-Klasse. Wo sind die Quellen-/Bibliotheksinformationen für die Herkunft dieser Klasse? –

+0

Oben ... Klicken Sie auf, wie Icon Pack installiert wird –

Antwort

8

mit diesem Gelöst:

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); 
      } 
     } 
2

Dies funktioniert Nur wenn eines der folgenden Pakete installiert ist,

1) Ist es installiert?

org.adw.launcher.THEMES 
com.gau.go.launcherex.theme 

getAvailableIconPacks sollte HashMap Größe> 0

2) unterhalb der Rückkehr gültig ziehbar oder null zurück?

d = packIcon.getDrawableIconForPackage(packName, iconDrawable); 

Die Verwendung ist in Ihrem Fall falsch.

Sie Iterieren throw Symbol Anbieter Paket names.SO in folgendem Fall, dass Ihr für fragen

d = packIcon.getDrawableIconForPackage(packName, iconDrawable); 
//means 
//d = packIcon.getDrawableIconForPackage("org.adw.launcher.THEMES",conDrawable) 

so ohne über Themen Installation von Google spielen sie nur den Standard Drawables zurückzugibt.

+0

Methode hatte prüfen, ob (! Mloaded) load(); bevor ich zeichne ... so funktioniert es nicht –

+0

Ich möchte Icon Pack (heruntergeladen von Google Play) auf meinem benutzerdefinierten Launcher installieren, kein ADW oder GO, es ist mein Launcher! getDrawableIconForPackage return icon von "Pack Icon App" –

+0

aber der IconPackManager funktioniert nicht ohne org.adw.launcher.THEMES com.gau.go.launcherex.theme –

Verwandte Themen