全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android如何动态改变App桌面图标

时不时的我们就会发现,一些我们常见的应用,比如某宝,某东,在一些特殊的日子中,比如双十一,元旦,为了迎合这样一个日子的气氛,在桌面的应用图标就会发生改变,其实对于这样的一个桌面图标更换,Android中为我们提供了AndroidManifest.xml里的<activity-alias>标签实现方式(更多文章请关注我的微信公众账号,左边二维码)。

我们知道,我们每写一个 Activity就要在AndroidManifest进行配置一下,我们才可以正常的启动它,除此之外,我们还可以对它设置一个别名,也就是用<activity-alias>标签,这个标签的属性,和<activity>的属性一致,可以做一个简单的分析:

android:icon="@mipmap/app_logo"
android:label="@string/app_name"

上面的两个属性是用来设置图标和标签。

android:name=".newsLuncherActivity"

虽然说别名的name可以任意去写,但我想说的是,还是尽量设置成一个activity,尽量和一个<activity>的name保持一致,如果不设置成一个activity的名字,我发现部分手机会有问题,比我现在我手上的测试机。

android:enabled="false"

这个是否是显示别名,默认是true。

android:targetActivity=".MainActivity"

这个就比较重要了,指定别名启动的activity,一定要与原来启动入口activity的name保持一致,并且要在<activity>的标签下面。

具体实现如下:

<application
 android:allowBackup="true"
 android:icon="@mipmap/ic_launcher"
 android:label="@string/app_name"
 android:supportsRtl="true"
 android:theme="@style/AppTheme">
 <activity android:name=".MainActivity">
 <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
</application>

上面呢是默认的图标,及默认的activity入口 。

<application
 android:allowBackup="true"
 android:icon="@mipmap/ic_launcher"
 android:label="@string/app_name"
 android:supportsRtl="true"
 android:theme="@style/AppTheme">
 <activity android:name=".MainActivity">
 <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 <activity-alias
 android:name=".newsLuncherActivity"
 android:enabled="false"
 android:icon="@mipmap/app_logo"
 android:label="@string/app_name"
 android:targetActivity=".MainActivity">
 <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity-alias>
</application>

上面是添加<activity-alias>标签后,具体启动方式,我们可以这样做一个控制,服务器端设置一个开关,当请求到要更改桌面图标时,我们就可以通过 PackageManager 对象提供的 setComponentEnabledSetting()方法关闭当前 Component 组件,并启动别名对应的 Component 组件即可,为了使得图标能够快速更换,我们可以加上重启Luncher应用代码,name是自己定义个类名,记住一定要传全路径,如:

com.ming.abner.changelauncher.newsLuncherActivity
 private void changeLuncher(String name) {
 PackageManager pm = getPackageManager();
 pm.setComponentEnabledSetting(getComponentName(),
  PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
 pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, name),
  PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
 //Intent 重启 Launcher 应用
 Intent intent = new Intent(Intent.ACTION_MAIN);
 intent.addCategory(Intent.CATEGORY_HOME);
 intent.addCategory(Intent.CATEGORY_DEFAULT);
 List<ResolveInfo> resolves = pm.queryIntentActivities(intent, 0);
 for (ResolveInfo res : resolves) {
  if (res.activityInfo != null) {
  ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
  am.killBackgroundProcesses(res.activityInfo.packageName);
  }
 }
 }
}

<activity-alias>我们可以定义多个,对于不同时候,我们就可以动态去更换不同的图标。

记得添加权限:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

以上所述是小编给大家介绍的Android如何动态改变App桌面图标,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # 动态改变图标  # Android实现动态改变app图标的示例代码  # Android动态修改应用图标与名称的方法实例  # Android动态更换应用图标详情  # 我们可以  # 就会  # 要在  # 做一个  # 重启  # 小编  # 就可以  # 设置成  # 的是  # 会有  # 还可以  # 多个  # 在此  # 但我  # 比我  # 给大家  # 才可以  # 这样一个  # 想说  # 要了 


相关文章: 公司网站制作价格怎么算,公司办个官网需要多少钱?  如何选购建站域名与空间?自助平台全解析  简单实现Android文件上传  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在IIS管理器中快速创建并配置网站?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  制作网站的软件免费下载,免费制作app哪个平台好?  建站之星备案流程有哪些注意事项?  如何获取开源自助建站系统免费下载链接?  名字制作网站免费,所有小说网站的名字?  如何通过多用户协作模板快速搭建高效企业网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  金*站制作公司有哪些,金华教育集团官网?  网站制作服务平台,有什么网站可以发布本地服务信息?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何快速搭建高效WAP手机网站?  php json中文编码为null的解决办法  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  建站之星展会模版如何一键下载生成?  Bpmn 2.0的XML文件怎么画流程图  定制建站如何定义?其核心优势是什么?  Android使用GridView实现日历的简单功能  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何在IIS中新建站点并配置端口与物理路径?  建站之星如何助力企业快速打造五合一网站?  如何打造高效商业网站?建站目的决定转化率  如何在阿里云香港服务器快速搭建网站?  如何制作算命网站,怎么注册算命网站?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何通过可视化优化提升建站效果?  制作宣传网站的软件,小红书可以宣传网站吗?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何快速上传自定义模板至建站之星?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何将凡科建站内容保存为本地文件?  javascript中的try catch异常捕获机制用法分析  如何在云主机上快速搭建多站点网站?  已有域名如何免费搭建网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  定制建站流程解析:需求评估与SEO优化功能开发指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。