注:更新版本时。需换为默认的才可以更新apk

android:enabled="true"为默认

1、准备资源

(1)logo和名称资源

<string name="app_name">httpheader</string>
<string name="app_name1">第二名</string>
<string name="app_name2">第3名</string>

(2)配置组件资源

<activity-aliasandroid:name=".MainActivity0"android:enabled="true"android:icon="@mipmap/ic_1111"android:label="@string/app_name1"android:targetActivity=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
</activity-alias><activity-aliasandroid:name=".MainActivity1"android:enabled="false"android:icon="@mipmap/ic_1212"android:label="@string/app_name2"android:targetActivity=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
</activity-alias>
MainActivity需要添加属性:android:enabled="false"

2、初始化包管理类和多个组件

private ComponentName componentName1;
private ComponentName componentName2;
private PackageManager mPackageManager;
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setListener(this);//获取到包管理类实例mPackageManager = getPackageManager();componentName1 = new ComponentName(getBaseContext(), "com.tianxin.httpheader.MainActivity0");componentName2 = new ComponentName(getBaseContext(), "com.tianxin.httpheader.MainActivity1");

上面是   包名.配置组件名称

3、主要切换logo方法:

/*** 切换双11logo* @param*/
public void jump01() {enableComponent(componentName1);disableComponent(componentName2);
}
public void jump02() {enableComponent(componentName2);disableComponent(componentName1);
}/*** 启动组件* @param componentName 组件名*/
private void enableComponent(ComponentName componentName) {//此方法用以启用和禁用组件,会覆盖Androidmanifest文件下定义的属性mPackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}/*** 禁用组件* @param componentName 组件名*/
private void disableComponent(ComponentName componentName) {mPackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}

在线回复bug:QQ1085220040

android动态切换logo和label相关推荐

  1. Android 动态切换应用图标方案

    经常听到大家讨论类似的需求,怀疑大厂是不是用了此方案,据我个人了解,多数头部 app 其实都是发版来更新节假日的 icon.当然本方案也是一种可选的方案,以前我也调研过,存在问题和作者所述差不多,此外 ...

  2. Android动态切换主题

    软件换肤从功能上可以划分三种: 1) 软件内置多个皮肤,不可由用户增加或修改: 最低的自由度,软件实现相对于后两种最容易. 2) 官方提供皮肤供下载,用户可以使用下载的皮肤: 用户可选择下载自己喜欢的 ...

  3. android 动态切换主题,android动态主题切换(RRO 技术)

    android上的主题切换,Android从M开始加入了动态资源overlay机制 runtime resource overlay(RRO),这个是sony贡献的,实现机制如下图,就是在框架中建立一 ...

  4. android 动态替换logo

    文章目录 一.标签\ 1.1 简单使用 二.动态设置启动配置 2.1 通过PackageManager可以动态设置启动配置 2.2 setComponentEnabledSetting官网介绍 2.3 ...

  5. Android动态切换输入法

    Android中若想在自己的App中实现输入法切换,可以有两种方式,一种是直接代码中强制切换输入法,另一种是弹出输入法选择框,提示用户切换. 强制切换输入法方式: InputMethodManager ...

  6. android 动态label,Android仿抖音实现动态壁纸

    一.概述: 壁纸运行在一个Android服务之中,这个服务的名字叫做WallpaperService.当用户选择了一个壁纸之后,此壁纸所对应的WallpaperService便会启动并开始进行壁纸的绘 ...

  7. android系统动态切换输入法,一种动态切换Android系统输入法的弹出模式的方法与流程...

    技术特征: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下: (1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230 ...

  8. android log丢失(三)动态切换logd机制和kernel机制

    之前我们分析了如何修改版本使log机制变成kernel的log机制.这篇博客我们继续修改可以动态切换,这样方便平时log丢失时调试. 我们先来看liblog库的编译mk文件,这个文件中主要修改了对使用 ...

  9. android自动切换输入法,一种动态切换Android系统输入法的弹出模式的方法

    主权项: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下:(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp ...

最新文章

  1. iOS开发UI篇 -- UISearchBar 属性、方法详解及应用(自定义搜索框样式)
  2. Unrecognized option: -javaagent
  3. mysql sql归类_带有归类SQL强制转换SQL Server归类介绍
  4. java.lang.IllegalArgumentException: node to traverse cannot be null! HQL语法问题
  5. TCP通信过程中各步骤的状态---(简单解释)
  6. Linux_创建母版,快速克隆,如何移动虚拟机.ziw
  7. 转发技术风雨三十年,你经历过……
  8. idea 修改前后端代码自动运行
  9. 计算机二级MS office之excel常用函数
  10. 微信机器人 DIY 从 0 到 1
  11. 微信小程序中集成有赞UI自定义Tabbar组件
  12. 直连路由、主机路由以及选择顺序
  13. 模块化开发RequireJS之shim配置
  14. stacey矩阵 敏捷_通过矩阵镜头实现敏捷
  15. 如何防止驱动被恶意利用
  16. Poto Editor for Mac(mac照片编辑器)
  17. 用微信 远程遥控 服务器
  18. Java 调用 有道翻译API
  19. linux 查看war包内容,linux解压war包(示例代码)
  20. 爬虫“学前班”,记住这些不踩坑!

热门文章

  1. 前端学习(2753):创建新页面和页面配置
  2. 工作226:for循环逻辑
  3. 工作201:所需功能优化
  4. 前端学习(2670): vue3.0实战开始建立新项目功能清单
  5. 前端学习(2388):封装请求模块
  6. 前端学习(2140):webpack的安装
  7. “睡服”面试官系列第二十篇之generator函数的异步应用(建议收藏学习)
  8. 前端学习(1654):前端系列实战课程之js运行代码
  9. 前端学习(1267):axios的post传参
  10. 前端学习(693):for循环案例之求出偶数奇数之和