Android应用程序图标如何根据事件更改

3

你有没有在任何特别场合看到过VLC媒体播放器或AliExpress应用程序图标?

他们的Android应用程序图标会根据活动更改。例如,在圣诞节期间,图标上会有圣诞帽,而在黑色星期五则不同。我设法捕捉了AliExpress图标的屏幕截图。

它是如何做到的呢?因为该应用程序最近没有更新。 不确定它是否是基于日期进行更新的。

检查AliExpress应用程序图标


这个回答解决了你的问题吗?如何在Android中以编程方式更改应用程序图标? - greeble31
@ greeble31 不行伙计。看起来该方法在API 26上停止了。 - MC Naveen
https://blog.jakelee.co.uk/programmatically-changing-app-icon/ - Robert Harvey
2个回答

2

他们每个季节都会发布更新。 每个更新在res/drawable文件夹中都有一个新的定制图标。

此外,您可以声明不同的启动事件,然后使该启动事件的图标不同。


然后他们根据日期创建自定义快捷方式...这是我找到的答案-https://dev59.com/oKbja4cB1Zd3GeqPbBrG#50849486 - Empire of E

0
如果您能够阅读代码, 这里有一个更改图标的示例函数, “这只是一个示例,尚未经过测试”。
   private void setIcon(int res_drawable)
    {
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
            Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class);
            shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            shortcutIntent.setAction(Intent.ACTION_MAIN);

            ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(getContext(), "shortcut")
                .setShortLabel(getResources().getString(R.string.app_name))
                .setIcon(IconCompat.createWithResource(getApplicationContext(), res_drawable))
                .setIntent(shortcutIntent)
                .build();
            ShortcutManagerCompat.requestPinShortcut(getApplicationContext(), shortcut, null);
        }
        else {
            Intent i= new Intent(Intent.ACTION_MAIN);  
            i.addCategory(Intent.CATEGORY_LAUNCHER);

            Intent intent = new Intent();     
            intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, i);     
            intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, 
                            context.getResources().getString(R.string.app_name));       
            intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
                            Intent.ShortcutIconResource.fromContext(context, res_drawable));
            intent.setAction(Intent.ACTION_CREATE_SHORTCUT);
            context.sendBroadcast(intent);
            }
    }

如果你看代码,似乎是在启动时创建了一个快捷图标。

我找不到更好的方法,除了通过快捷方式或使用Activity别名来设置它。

另一种方法是手动编辑Google Play上的图标,但我不确定它是否只对安装生效还是只对PlayStore生效。

似乎大多数公司每个季节都会推出更新 - 圣诞版、复活节版等等...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接