4

我遇到了一个名为Nova Launcher的启动器应用程序,它提供了将系统应用程序的外观更改为另一个图标包的选项,下面是 nova 启动器的屏幕截图。

来自新星发射器的屏幕截图

当我选择股票 jellybean时,它会将系统应用程序图标替换为 jellbean 图标包。

我想在我自己的启动器应用程序中实现相同的功能,我谷歌但没有找到任何相关的东西,需要指导和建议。

我试图设置Example-theme只是更改包名称,但它让我强制关闭com.mypackagename not found.

主要活动@

private static final String ACTION_APPLY_ICON_THEME = "com.mypackage.launcher.APPLY_ICON_THEME";
    private static final String NOVA_PACKAGE = "com.mypackage.launcher";
    private static final String EXTRA_ICON_THEME_PACKAGE = "com.mypackage.launcher.extra.ICON_THEME_PACKAGE";

//    private static final String ACTION_APPLY_ICON_THEME = "com.teslacoilsw.launcher.APPLY_ICON_THEME";
//    private static final String NOVA_PACKAGE = "com.teslacoilsw.launcher";
//    private static final String EXTRA_ICON_THEME_PACKAGE = "com.teslacoilsw.launcher.extra.ICON_THEME_PACKAGE";

我只是在寻找一种方法,我应该在自己的启动器中管理或编码以设置与 nova 启动器相同的主题。

下面的链接帮助我为启动器创建主题,但没有找到任何设置/应用到我的启动器的方法。

启动器主题教程

示例主题

你的建议是可观的。

4

1 回答 1

4

罗宾先生是对的..你可以手动做..

将所有自定义图标放在具有特定名称的可绘制文件夹中,例如icon_appname.png..

icon_contacts.png、icon_camera.png、icon_settings.png、icon_phone.png、icon_email.png...等

或者您也可以将图像保存为包名,也可以保存为icon_com_android_camera.png ...等

只需将条件放入GetView适配器类中。

        if(User selected default theme)
        {
        //use default icon from system
        }
        else
        {
            String appname = here is app name;
            String appPackageName = here is app package name;
            // You can use appname or appPackageName as per your drawable name.
            int intResource = getResources().getIdentifier("icon_" + appname.toLowerCase(), "drawable", getPackageName());
            if(intResNormal!=0)
                holder.txtTitle.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(intResource), null, null);
            else
                //use default icon when no resource found
        }

注意: 如果您作为包名,请不要忘记将“_”替换为“。”

于 2013-09-09T09:32:24.603 回答