java icon动态变换_Android实现APP安装后动态更换Icon和名称-程序员宅基地

技术标签: java icon动态变换  

b26efb2f263291acf6ee618a320e3e9e.png

最近看到手机自带的时钟App可以实时的修改图标样式,就觉得很神奇。考虑到我自己要做的日记App可能也需要这样的功能,于是研究了一下,目前初步实现了修改图标及点击后进入不同Activity的功能,代码比较简单,点击这里download ZIP。

简单效果图:

原来

af0b36f28991363b6dbe04bfe2a7ce32.png

调用修改方法:

41f4f6e458ff53cb1e4256dd204e0329.png

代码很简单,就2个部分:

1.修改manifest文件:

package="sxkeji.net.aliasdemo" >

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name=".MainActivity"

android:label="@string/app_name"

android:exported="true">

android:enabled="true"

android:label="应用名称"

android:name=".MainActivity"

android:targetActivity=".MainActivity">

android:name=".TestAlias"

android:label="入口2"

android:exported="true" >

android:enabled="false"

android:icon="@mipmap/git"

android:label="@string/app_name"

android:name=".TestAlias"

android:targetActivity=".TestAlias">

上面代码的意思是建立2个别名,可以看做2个引用,通过别名 可以找到对应的Activity。

这里注意2个activity-alias的name、targetActivity对应的Activity名称要写自己要对应的。 具体activity-alias是什么后面介绍,可以先看看这篇博客:

一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成

2.Java代码修改:

private void changeIcon() {

PackageManager pm = getApplicationContext().getPackageManager();

System.out.println(getComponentName());

//去除旧图标,不去除的话会出现2个App图标

pm.setComponentEnabledSetting(getComponentName(),

PackageManager.COMPONENT_ENABLED_STATE_DISABLED,

PackageManager.DONT_KILL_APP);

//显示新图标

pm.setComponentEnabledSetting(new ComponentName(

getBaseContext(),

"sxkeji.net.aliasdemo.TestAlias"),

PackageManager.COMPONENT_ENABLED_STATE_ENABLED,

PackageManager.DONT_KILL_APP);

}

在需要修改Icon的时候调用上面的方法,就可以实现更换效果了。

适用场景:

比如电子商务类App推出新活动时可以通过服务器发送消息,在service里修改图标,吸引用户进入;

还有一些小清新App可以支持用户自定义App图标、名称,更人性化;

等等。。。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32520601/article/details/114891632

智能推荐

MAC OS 运行hadoop提示util.NativeCodeLoader: Unable to load native-hadoop library for your platform的解决_mac unable to load native-hadoop library for your -程序员宅基地

文章浏览阅读2.3k次。在Mac OS 测试Hadoop时,无论是启动Hadoop服务,还是运行Hadoop命令,均会提示以下警告信息:./start-dfs.sh 17/04/23 18:20:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java_mac unable to load native-hadoop library for your platform... using builtin-

C++11(及现代C++风格)和快速迭代式开发_国内c++风格-程序员宅基地

文章浏览阅读7w次,点赞53次,收藏156次。过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发团队也有很大一部分来源于英库团队的老成员)。整个项目是微软亚洲研究院的自然语言处理组、互联网搜索与挖掘组和我们创新工程中心,以及微软中国Office商务软件部(MODC)多组合作的结果。至于我们的输入法有哪些创新的fe_国内c++风格

为什么我的word一打开就显示启动失败,然后要用安全模式打开?解决方法有2_word打开闪退,然后提示安全模式打开,删除了模板也没有用-程序员宅基地

文章浏览阅读2.5k次。为什么我的word一打开就显示启动失败,然后要用安全模式打开?解决方法有2电脑打开word,excel,PowerPoint会提示启动失败,要用安全模式打开,特麻烦。有时候还会提示“安装一个什么玩意”。找到了解决的方法,大家分享下:(网上收集)为什么我的word一打开就显示启动失败,然后要用安全模式打开?请高手指点。我的电脑中过病毒,我不知道是不是杀毒的时候顺便删掉了什么东西,_word打开闪退,然后提示安全模式打开,删除了模板也没有用

IDEA启动项目报错:Cannot open URL.Please check this URL is correct_idea启动tomcat项目提示open url-程序员宅基地

文章浏览阅读1w次,点赞9次,收藏5次。IDEA启动项目报错:Cannot open URL.Please check this URL is correct问题截图解决方法问题IDEA启动SSM项目,使用的Tomcat,报错 Cannot open URL.Please check this URL is correct截图解决方法将图中的端口号(红色部分)改为一致即可。..._idea启动tomcat项目提示open url

python小练习4:去掉列表中重复的元素_第4关:列表中的重复元素 1-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏10次。题目:去掉列表中重复的元素分析:给定一个列表,怎么将其中重复的元素删除呢?1.只用循环的方法:思路:先从该列表中拿出第一个数(下标为0),再拿出第二个数(下标为1),进行比较,如果值相等,则把第二个数删掉。再拿出第三个数(下标为2),与第一个数比较,如果不相等,则继续取元素。以此类推: #coding:utf-8 li = [1,2,3,4,5,2,1,3,4,57,8,8,9]_第4关:列表中的重复元素 1

如何挖掘物联网的商业价值?-程序员宅基地

文章浏览阅读82次。物联网(IoT),智能硬件热火朝天, 真正解决了用户的痛点和行业痛点了吗?还是链接而链接智能而智能?就如下图:你会想要一个物联网的咖啡杯吗?不会吧!物联网(IoT)话题正热,它是时下最流行的趋势。你可能会认为世界上没有什么产品不需要以物联网来实现。然而,只因为有些事完成了,并不表示就应该这么做。当然,物联网的潜在价值主张是相当庞大的,它能够带动新公司...

随便推点

水污染扩散-一维二维模型在线示例_水污染扩散模型-程序员宅基地

文章浏览阅读6.2k次,点赞3次,收藏36次。在线演示示例。地表水,一维水污染扩散模型,二维水污染扩散模型。持久性污染物(persistent pollutant)指在地表水中很难由于物理、化学、生物作用而分解、沉淀或挥发的污染物,例如在悬浮物甚少,沉降作用不明显水体中无机盐类、重金属等,可以通过生化需氧量与化学需氧量比值来判定。......_水污染扩散模型

WordPress安装使用问题记录-程序员宅基地

文章浏览阅读94次。本文记录在使用WordPress过程中的问题和解决。安装比较顺利没有问题,具体如下(CentOS 6.5,DO的CentOS7 image里默认的yum源没有mysql-serve比较奇怪r):安装apache、mysql和phpyum install httpd mysql-server mysql php php-mysql下载wordpress安装...

探索Java设计模式:原理、应用与实践-程序员宅基地

文章浏览阅读9k次,点赞17次,收藏24次。Java设计模式的学习与实践对于提升软件开发水平具有重要意义。理解并熟练运用这些模式,可以帮助开发者编写出更易于维护、扩展、复用的高质量代码。然而,设计模式并非银弹,关键在于合理选择、适时运用。在实际项目中,应结合具体业务需求、技术栈特点及团队开发规范,权衡利弊,避免过度设计。持续探索、实践与反思,方能真正领略设计模式的魅力,成为更优秀的Java开发者。

Market Competition Data for Listed Companies 2022-2003 HHI Main Business Income Asset Owner‘s Equity-程序员宅基地

文章浏览阅读14次。主营业务 Main Business;主营业务 Main Business;主营业务 Main Business;勒纳 Lerner;勒纳 Lerner;勒纳 Lerner;

【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统...-程序员宅基地

文章浏览阅读225次。本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。========================================== 分割线============================..._unity 怎么动态换cubemap

数据库----数据更新_当修改reader表元组的rno时,级联修改loan表中该读者的借阅记录。 (2)当删除reader-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏8次。实验目的熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录。创建索引,删除索引。创建视图,使用视图,删除视图。实验内容仍然基于上次课程建立的小型图书借阅系统。如果使用实验室的机器完成实验,首先重做上次课的步骤1-4建立相应数据库。实验步骤(以用户CC的身份建立连接,并在此连接下执行后面的操作。)1、 查询记录:在Reader表中查询直接上司是“李四”的员工的名字SELECT rname from reader where rboss=’李四’;2、 修改记录:在Reader_当修改reader表元组的rno时,级联修改loan表中该读者的借阅记录。 (2)当删除reader

推荐文章

热门文章

相关标签