美文网首页
动态修改App显示图标

动态修改App显示图标

作者: 这个杀手不太累 | 来源:发表于2017-11-13 14:42 被阅读53次

我们可以在应用中集成多个图标,到特定节日显示特殊的图标,好比双11显示打折的图标,双11后显示普通图标。

让我们来看下如何代码设置:

  1. 首先在AndroidManifest.xml文件中添加多个图标,主要使用activity-alias标签
<?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>
        <!--默认显示的图标enabled=true-->
        <activity-alias
            android:name=".icon_tag"
            android:enabled="true"
            android:icon="@mipmap/ic_launcher"
            android:label="图标"
            android:targetActivity=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>
        <!--代码设置要更改的图标,enabled=false,这里可以根据需要添加多个activity-alias节点-->
        <!--这个为了演示只添加了两个图标,一个默认的,一个代码设置要更改的-->
        <activity-alias
            android:name=".icon_tag_new"
            android:enabled="false"
            android:icon="@mipmap/ic_launcher_round"
            android:label="图标"
            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 . 代码更改图标,这个主要通过设置enable属性来改变要显示的图标,示例代码如下:(Kotlin版)

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btn.setOnClickListener {
            switchIco(1)
        }
    }

    /**
     * 切换桌面图标,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()
        }
    }
}

这里要重要启动下App,可以从最近任务列表中移除重新打开。
有兴趣的同学试下哈~

相关文章

  • 动态修改App显示图标

    我们可以在应用中集成多个图标,到特定节日显示特殊的图标,好比双11显示打折的图标,双11后显示普通图标。 让我们来...

  • mac下需改eclipse图标和启动图标

    修改显示图标 修改显示图标其实是和eclipse无关的一个操作,可以理解是mac下修改app图标的通用方法:1.选...

  • 动态修改app图标

    1.添加icons图片 2.修改plist 3.添加代码 demo: https://github.com/lic...

  • activity-alias修改/添加app图标

    1.动态修改app图标 2.添加快捷启动页面

  • iOS动态修改app图标

    在iOS10.3以后UIApplication多了个分类UIAlternateApplicationIcons 1...

  • iOS 动态修改app图标

    在开发过程中,我们有时候会遇到对线上的项目进行更改icon的需求.譬如,明天双十一抢购,要做一个活动图标.后天什么...

  • 【iOS】动态修改APP图标

    在微博上看到了 @安财小小生分享的iOS 10.3新增功能:通过API动态修改APP的图标,自己深入了解了一下。 ...

  • iOS 动态修改app 图标

    动态修改app的图标,就是在不重新安装app的情况下,可以修改当前的icon图标;在某些情况下,是有这个需求的;例...

  • [iOS]动态修改app 图标(icon)

    动态修改app的图标,就是在不重新安装app的情况下,可以修改当前的icon图标;在某些情况下,是有这个需求的;例...

  • iOS app icon根据活动时间来更换配置

    动态修改app的图标,就是在不重新安装app的情况下,可以修改当前的icon图标;在某些情况下,是有这个需求的;例...

网友评论

      本文标题:动态修改App显示图标

      本文链接:https://www.haomeiwen.com/subject/vwdzmxtx.html