【问题标题】:Using icon packs in my app在我的应用程序中使用图标包
【发布时间】:2014-07-24 15:25:36
【问题描述】:

我的应用程序包含一项功能,用于列出用户设备上安装的所有应用程序,并附有图标。现在用户在此列表中请求图标包支持。

目前我列出已安装的应用程序:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

final List<ResolveInfo> rgRi = pm.queryIntentActivities( mainIntent, 0);

然后为每个ResolveInfo 加载图标:

.loadIcon(application.getPackageManager());

这给了我应用程序的图标,但不是图标包,而是默认图标。

如果某个应用可用,我如何访问该应用的图标包图标?

【问题讨论】:

    标签: android android-launcher


    【解决方案1】:

    回答我自己的问题。这是一个关于从图标包加载图标的简短教程(包含伪代码)。

    获取已安装的图标包

    查找带有意图过滤器com.gau.go.launcherex.themeorg.adw.launcher.THEMES 的应用。可能其他人也存在。 使用例如

    PackageManager.queryIntentActivities(new Intent("org.adw.launcher.THEMES"), PackageManager.GET_META_DATA);
    

    加载 appfilter.xml

    它可以作为资源找到,也可以在图标包的 assets 文件夹中找到。使用任一

    int i = Resources.getIdentifier("appfilter", "xml", "iconpack.package.name");
    Resources.getXml(i);
    

    InputStream s = iconPackres.getAssets().open("appfilter.xml");
    XmlPullParserFactory f = XmlPullParserFactory.newInstance();
    f.setNamespaceAware(true);
    XmlPullParser p = f.newPullParser();
    p.setInput(s, "utf-8");
    

    解析 appfilter.xml

    Appfilter.xml 描述图标包内容。除其他外,themer 能够在背景上绘制图标、提供蒙版等。这在 XDA 上都有描述:http://forum.xda-developers.com/showthread.php?t=1649891。我们最感兴趣的是&lt;item&gt; 标签,例如

    <item component="ComponentInfo{com.android.browser/com.android.browser.BrowserActivity}" drawable="com_android_browser_browseractivity" />
    

    component 属性包含包和活动的名称,drawable 是图标包中匹配图标的名称。循环遍历上一步中的XmlPullParser 以找到您想要的图标。

    加载图标

    只需获取要加载其图标的应用的组件名称

    PackageManager.getLaunchIntentForPackage("app.package.name").getComponent().toString();
    

    比用

    加载图标
    Resources.getIdentifier(componentName, "drawable", "app.package.name"); 
    Resources.getDrawable(...)
    

    【讨论】:

    猜你喜欢
    • 2011-02-13
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2020-09-15
    • 2023-03-28
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多