动态修改安卓桌面icon
动态修改安卓桌面icon
继承启动activity
网上很多说使用activity-alias的,后面看到知乎一个文章:Android动态变更图标和应用名,觉得也是写成一个activity合理一些。
这里直接继承原来的启动activity,内容为空就行:
public class NewMainActivity1 extends MainActivity {}
在manifest内注册
这里就不用动原来的activity了,自己新写注册文件:
<activityandroid:name=".NewMainActivity1"android:enabled="false"android:exported="true"android:icon="@drawable/icon"android:label="test1"android:targetActivity=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
以singleInstance模式新建设置activity
这里以SettingActivity为例,用一个对话框来选择图标,稍有不同的是,我这设置完会回到启动的activity,如果是使用别名应该做不到。
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_setting);new AlertDialog.Builder(this).setTitle("设置图标activity").setMessage("切换不同入口activity,在桌面显示不同得icon").setNegativeButton("取消", (dialog, which) -> testMutiIcon(-1)).setNeutralButton("恢复", (dialog, which) -> testMutiIcon(0)).setPositiveButton("切换到新icon", (dialog, which) -> testMutiIcon(1)).create().show();}private void testMutiIcon(int type) {PackageManager pm = getPackageManager();ComponentName mainComp = new ComponentName(this, "com.xxx.MainActivity");ComponentName new1Comp = new ComponentName(this, "com.xxx.NewMainActivity1");Intent intent;if(type == 0) {pm.setComponentEnabledSetting(mainComp, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);pm.setComponentEnabledSetting(new1Comp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);intent = new Intent(this, MainActivity.class);}else if(type == 1) {pm.setComponentEnabledSetting(mainComp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);pm.setComponentEnabledSetting(new1Comp, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);intent = new Intent(this, NewMainActivity1.class);}else {if (PackageManager.COMPONENT_ENABLED_STATE_DISABLED == pm.getComponentEnabledSetting(mainComp)) {intent = new Intent(this, NewMainActivity1.class);}else {intent = new Intent(this, MainActivity.class);}}startActivity(intent);finish();}
这里intent这么写是因为前面activity的帐已经被销毁了,可以通过系统的任务栏查看,所以我们要重新跳转到主界面,这里MainActivity和NewMainActivity1内容是一样的,但是实际已经是两个类了。
跳转到设置
跳转和原文章写的差不多,多了个版本限制:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Intent intent = new Intent(this, SettingActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);startActivity(intent);}
最后
因为是上班空闲时间写的,写的不是很好。
动态修改安卓桌面icon相关推荐
- Android-动态修改APP桌面图标
背景 最近公司有个动态修改APP桌面图标的需求,需要做一下技术调研,网上查了一下实现方案,然后参考网上的方案写了个实现demo,在这里记录一下. 题外话:由于图标切换都是本地配置的,产品问了一句:&q ...
- Android动态修改icon
Android动态修改icon 南京证券项目最近的需求之一,在某一时间时应用图标icon显示4.0icon,春节时显示春节icon,当春节过后,app需还原为默认icon,也就是有三个icon需要变化 ...
- Android动态修改桌面图标新坑总结
一.优秀文章概述 下面的文章描述动态修改桌面图标的基本方法,并且总结了很多坑及解决方案,以下是在此文章基础上的补充 <Android动态修改应用图标和名称> 二.第一个新坑 Android ...
- 动态修改网页icon图标
动态修改网页icon图标 //如果在vue项目中 在App.vue下的 created() 中输入 var link = document.querySelector("link[rel*= ...
- Launcher3桌面Icon的文字size的 修改
Hotseat上面的快捷方式可以分为两种,一种是普通快捷方式,可以default_workspace里面配置.另外一个是全部应用列表的按钮,这个实在Hotseat.java里面动态生成的. 第一种.是 ...
- 安卓动态修改系统状态栏背景和文字颜色,以及动态显示或隐藏系统状态栏
关于动态修改系统状态栏背景.字体和图标颜色,以及动态显示或隐藏系统状态栏,一直都是都是许多项目的常规需求.但是,由于不同版本间的兼容性差异,网上的实现方法多种多样.并且,许多方法都会存在这样.那样的不 ...
- 安卓桌面壁纸_火莹视频桌面:好玩的动态桌面壁纸软件,让你的桌面动起来
前言 每天都看着静止的桌面壁纸会不会感到有些无聊呢? 今天分享一款动态桌面壁纸软件,带你打开新世界的大门--「火莹视频桌面」,让我们的桌面动起来!φ(゜▽゜*)♪ 火莹视频桌面 火莹视频桌面是一款桌面 ...
- electron-vue跨平台桌面应用开发实战教程(三)——动态修改窗口大小
前边两篇文字简单介绍了一下怎么搭建electron-vue项目,主进程的基本配置,主进程和渲染进程之间的通讯.本文我们主要来讲解下如何动态的修改窗口大小. 通常很多桌面应用,初次打开都需要登录,登录窗 ...
- iOS动态修改app 图标(icon)
作者:流火绯瞳 链接:https://www.jianshu.com/p/69313970d0e7 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. Demo地址 ht ...
最新文章
- oracle goldengate技术架构-简单试验(全)
- postman 并发测试
- Spring测试框架springContextTest
- udp与tcp协议介绍
- 李嘉诚今日正式退休,来看看他一生都做过哪些牛逼的事
- 一套完整的导视设计案例_色彩导视艺术:乌克兰基辅语言学校导视设计案例
- lcd屏幕抖动_电视屏幕面板大科普!买电视之前必看!
- python中import星_【已解决】Python中递归import导入:ImportError: cannot import name
- Python爬虫_数据存储
- zabbix 2.4.5 自定义key监控redis
- HDU 2037 贪心
- 3S基础知识:用MapX快速开发
- wps如何设置试卷密封线_WPS怎么制作考试试卷?
- 2016国内移动广告平台排行榜
- 诗词取名:出自古诗词中富有文采的女孩名字
- 计算机无线网卡连接网络,台式机怎么连接无线网络?台式电脑不用网卡怎么连接网络?...
- 教你如何赚取你的第一桶金 - 2048(含源码)
- auto.js悬浮窗按钮的实际使用
- 经济-一文看懂经济学进化史:经济学的四次革命
- 输入一个日期判断是当年的第几天(C语言)