首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在自定义启动器上安装图标包?

如何在自定义启动器上安装图标包?
EN

Stack Overflow用户
提问于 2017-03-13 03:16:22
回答 2查看 1.3K关注 0票数 21

我正在尝试在我的自定义启动器上安装图标包,我已经阅读了这个注释How to install icon pack,但是我不能理解如何使用这个类,下面是我所做的:

代码语言:javascript
复制
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);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-31 18:07:13

解决了这个问题:

代码语言:javascript
复制
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);
            }
        }
票数 7
EN

Stack Overflow用户

发布于 2017-03-15 20:43:59

只有在安装了以下任何软件包的情况下才能工作,

1)安装好了吗?

代码语言:javascript
复制
org.adw.launcher.THEMES
com.gau.go.launcherex.theme

getAvailableIconPacks应返回大于0的HashMap大小

2)下面返回的是有效的drawable还是null?

代码语言:javascript
复制
 d = packIcon.getDrawableIconForPackage(packName, iconDrawable);

在您的情况下,使用是错误的。

在以下情况下,您正在迭代抛出图标提供程序包names.SO

代码语言:javascript
复制
d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
//means 
//d = packIcon.getDrawableIconForPackage("org.adw.launcher.THEMES",conDrawable)

因此,如果没有从google play安装上述主题,它只会返回默认的可绘制内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42751915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档