動(dòng)態(tài)更換app啟動(dòng)圖標(biāo)

方法:

** 使用android中的activity-alias標(biāo)簽(為activity設(shè)置一個(gè)別名,相當(dāng)于增加了一個(gè)啟動(dòng)的入口) **

具體步驟如下

1、在AndroidManifest.xml中為主activity提供如下配置

<activity-alias
 android:name=".MainAliasActivity"
 android:enabled="false"
 android:icon="@mipmap/ic_launcher_new"
 android:label="另外一個(gè)名字"
 android:targetActivity=".MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
</activity-alias>
屬性 含義
enabled 是否生效。配置多個(gè)activity-alias時(shí),如果只想一個(gè)生效,就設(shè)置一個(gè)為true
icon 自定義生效時(shí)的icon
label 作用同Activity標(biāo)簽中的label屬性,主要表現(xiàn)為桌面上的app名稱和activity的title的名稱
name 該activity-alias的名字
targetActivity 指明目標(biāo)Activity,類似于Activity標(biāo)簽中的name屬性,需寫(xiě)明包類路徑。表明通過(guò)activity-alias調(diào)起的是哪個(gè)Activity

2、在代碼中調(diào)用方法:

changeIcon("com.dm.learn_dynamic_icon.MainAliasActivity");
public void changeIcon(String activityPath) {
  PackageManager pm = getPackageManager();
  pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,  PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(this, activityPath),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}

源碼下載

參考資料:

http://blog.csdn.net/hansion3333/article/details/54946304
http://www.see-source.com/blog/300000032/1430.html
http://blog.csdn.net/u013718120/article/details/53893774

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容