APP动态更换应用图标icon

最近项目需求要做一个动态更换APP应用图标的功能,刚开始还纳闷产品为什么要求要这样的功能呢?突然想到百度地图,京东、淘宝没到双11 双12的时候都会动态更换应用图标,于是开始自己研究看怎么事项这个功能,在网上百度了一下,给了我一个启发,现在写出来记录一下。 在这之前我们先来了解一下设计到的知识: 1.activity-alias 在AndroidMainifest中,有两个属性: // 决定应用程序最先启动的Activity android.intent.action.MAIN // 决定应用程序是否显示在程序列表里 android.intent.category.LAUNCHER
另外,还有一个activity-alias属性,这个属性可以用于创建多个不同的入口,相信做过系统Setting和Launcher开发的开发者在系统的源码中应该见过很多。 2.PM.setComponentEnabledSetting PackageManager是一个大统领类,可以管理所有的系统组件,当然,如果Root了,你还可以管理其它App的所有组件,一些系统优化工具就是通过这个方式来禁用一些后台Service的。

使用方式异常简单: private void enableComponent(ComponentName componentName) { mPm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); }

private void disableComponent(ComponentName componentName) { mPm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); }

根据

PackageManager.COMPONENT_ENABLED_STATE_ENABLED
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
这两个标志量和对应的ComponentName,就可以控制一个组件的是否启用。

动态换Icon 有了上面的两个原理,来实现动态更换Icon就只剩下思路问题了。

首先,我们创建一个Activity,作为默认的入口并带着默认的图片,再创建一个双11的activity-alias,指向默认的Activity并带有双11的图片,再创建一个双12的activity-alias,指向默认的Activity并带有双12的图片……等等等。

另外就是activity部分。

这样就OK了!

便于交流请添加 西安Android开发群115812664(已满) 西安Android开发2群:655094235

转载于:https://juejin.im/post/5a93bd3b5188257a6049b8ca

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值