我遇到了一个名为Nova Launcher的启动器应用程序,它提供了更改外观和选项的选项。感觉系统应用程序到另一个图标包,下面是nova启动器的截图。
当我选择 stock 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启动器相同的主题。
以下链接可帮助我为启动器创建主题,但找不到设置/应用于启动器的任何方法。
你的建议很明显。
答案 0 :(得分: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
}
注意:强> 如果您关注包名称,请不要忘记将“_”替换为“。”