动态修改App显示图标
2017-11-13 14:17
537 查看
我们可以在应用中集成多个图标,到特定节日显示特殊的图标,好比双11显示打折的图标,双11后显示普通图标。
让我们来看下如何代码设置:
首先在AndroidManifest.xml文件中添加多个图标,主要使用activity-alias标签
2 . 代码更改图标,这个主要通过设置enable属性来改变要显示的图标,示例代码如下:(Kotlin版)
这里要重要启动下App,可以从最近任务列表中移除重新打开。
有兴趣的同学试下哈~
让我们来看下如何代码设置:
首先在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, Packa 4000 geManager.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,可以从最近任务列表中移除重新打开。
有兴趣的同学试下哈~
相关文章推荐
- Xcode-iOS10.3新特性如何动态修改APP图标
- Android 动态修改app名称(市场和手机中显示两个不同的名称)
- 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源
- Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar
- 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源
- 如何动态的修改安卓APP名字和桌面图标
- Android 动态修改app图标
- Android动态修改APP图标
- Android app图标总是显示默认的机器人图标,且在manifest文件的application中修改无效
- java代码动态修改app图标
- android app图标总是显示默认的机器人图标,且在manifest文件的application中修改无效
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- Android动态来改变App桌面图标--根据不同节日显示不同logo
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- iOS 如何修改App图标和App显示在iPhone的名字
- 关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法
- Flash中ComboBox 组件动态显示图标
- select如何让标题不显示在选项中以及修改三角形图标样式
- react native之修改APP的名称和图标