我們可以在應(yīng)用中集成多個(gè)圖標(biāo)荚醒,到特定節(jié)日顯示特殊的圖標(biāo),好比雙11顯示打折的圖標(biāo)岔擂,雙11后顯示普通圖標(biāo)病苗。
讓我們來看下如何代碼設(shè)置:
- 首先在AndroidManifest.xml文件中添加多個(gè)圖標(biāo),主要使用activity-alias標(biāo)簽
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="test.tlkg.com.icotest">
<application
android: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">
<!--去掉<category android:name="android.intent.category.LAUNCHER" />這句-->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<!--默認(rèn)顯示的圖標(biāo)enabled=true-->
<activity-alias
android:name=".icon_tag"
android:enabled="true"
android:icon="@mipmap/ic_launcher"
android:label="圖標(biāo)"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<!--代碼設(shè)置要更改的圖標(biāo),enabled=false,這里可以根據(jù)需要添加多個(gè)activity-alias節(jié)點(diǎn)-->
<!--這個(gè)為了演示只添加了兩個(gè)圖標(biāo)挠阁,一個(gè)默認(rèn)的宾肺,一個(gè)代碼設(shè)置要更改的-->
<activity-alias
android:name=".icon_tag_new"
android:enabled="false"
android:icon="@mipmap/ic_launcher_round"
android:label="圖標(biāo)"
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 . 代碼更改圖標(biāo),這個(gè)主要通過設(shè)置enable屬性來改變要顯示的圖標(biāo)侵俗,示例代碼如下:(Kotlin版)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn.setOnClickListener {
switchIco(1)
}
}
/**
* 切換桌面圖標(biāo)锨用,1普通,2圓形
*/
fun switchIco(useIco: Int = 1) {
try {
val icon_tag = "test.tlkg.com.icotest.icon_tag"
val ico_tagnew = "test.tlkg.com.icotest.icon_tag_new"
val pm = packageManager
val componentName = ComponentName(baseContext, icon_tag)
val componentNamenew = ComponentName(baseContext, ico_tagnew)
if (useIco == 1) {
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
} else if (useIco == 2) {
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
pm.setComponentEnabledSetting(componentNamenew, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
這里要重要啟動(dòng)下App隘谣,可以從最近任務(wù)列表中移除重新打開增拥。
有興趣的同學(xué)試下哈~