直很纳闷每次过节搞活动时,某宝,某东的图标都会改成的醒目,莫非他们会为了一个图标发布一个版本么?
显然不会,那么是怎么做到的呢?
1.AndroidManifest:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="visahall.cn.testchangeicon">
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <!--更改图标-->
- <activity-alias
- android:name="test1"
- android:targetActivity=".MainActivity"
- android:icon="@mipmap/riven"
- android:label="MyRiven"
- android:enabled="false">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- ></activity-alias>
- </application>
- </manifest>
- public class MainActivity extends AppCompatActivity {
- private ComponentName componentName1;
- private ComponentName componentName2;
- private PackageManager pm;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- init();
- /**
- * 为了快速测试,定义一个计时器,10秒后更换Icon
- * 实际情况都是调用系统时间然后进行切换Icon,比如双11,双12等
- */
- Timer timer = new Timer();
- timer.schedule(new TimerTask() {
- @Override
- public void run() {
- changeIcon();
- }
- },10000);
- }
- //修改图标
- private void changeIcon(){
- disableComponent(componentName1);
- enableComponent(componentName2);
- }
- private void init() {
- componentName1 = getComponentName();
- componentName2 = new ComponentName(getBaseContext(), "visahall.cn.testchangeicon.test1");
- pm = getApplicationContext().getPackageManager();
- }
- //启动
- private void enableComponent(ComponentName componentName){
- pm.setComponentEnabledSetting(componentName,
- PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
- }
- //关闭
- private void disableComponent(ComponentName componentName){
- pm.setComponentEnabledSetting(componentName,
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP
- );
- }
- }
android launcher 日历icon显示日期
- http://blog.youkuaiyun.com/weisenmao/article/details/44750181
- http://blog.youkuaiyun.com/yangxi_pekin/article/details/50202755