欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

【Android】动态更新Icon

发布时间:2024/9/5 Android 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Android】动态更新Icon 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

动态更改图标主要用到activity-aliasPackageManager的setComponentEnabledSetting方法。具体步骤如下:

1、在AndroidManifest.xml中增加以下声明:

<activity-aliasandroid:name=".alias"android:enabled="false"android:icon="@mipmap/icon"android:label="Alias"android:targetActivity=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> </activity-alias>

完整文件如下:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.wangyz.dynamicicon"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"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-aliasandroid:name=".alias"android:enabled="false"android:icon="@mipmap/icon"android:label="Alias"android:targetActivity=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity-alias></application></manifest>

2、切换图标

getPackageManager().setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP); getPackageManager().setComponentEnabledSetting(new ComponentName(this,getPackageName() + ".alias"),PackageManager.COMPONENT_ENABLED_STATE_ENABLED,0);

setComponentEnabledSetting方法的最后一个参数,PackageManager.DONT_KILL_APP表示不关闭App,0表示关闭App刷新图标。

完整文件如下:

package com.wangyz.dynamicicon;import android.content.ComponentName; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void changeIcon(View view) {getPackageManager().setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);getPackageManager().setComponentEnabledSetting(new ComponentName(this,getPackageName() + ".MainActivity"),PackageManager.COMPONENT_ENABLED_STATE_ENABLED,0);}public void changeIconAlias(View view) {getPackageManager().setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);getPackageManager().setComponentEnabledSetting(new ComponentName(this,getPackageName() + ".alias"),PackageManager.COMPONENT_ENABLED_STATE_ENABLED,0);} }

源码地址:https://github.com/milovetingting/Samples/tree/master/DynamicIcon

转载于:https://www.cnblogs.com/milovetingting/p/10436746.html

总结

以上是生活随笔为你收集整理的【Android】动态更新Icon的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。