Android实现动态改变app图标的示例代码

本文介绍了动态改变app图标,分享给大家,具体如下:

代码实现如下:

<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>

我们先来简单的分析一下上面的代码:

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>的标签下面。

添加<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" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-20 07:56:08

Android实现动态改变app图标的示例代码的相关文章

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

时不时的我们就会发现,一些我们常见的应用,比如某宝,某东,在一些特殊的日子中,比如双十一,元旦,为了迎合这样一个日子的气氛,在桌面的应用图标就会发生改变,其实对于这样的一个桌面图标更换,Android中为我们提供了AndroidManifest.xml里的<activity-alias>标签实现方式(更多文章请关注我的微信公众账号,左边二维码). 我们知道,我们每写一个 Activity就要在AndroidManifest进行配置一下,我们才可以正常的启动它,除此之外,我们还可以对它设置一个别

Android Fragment动态创建详解及示例代码_Android

Android Fragment 动态创建 Fragment是activity的界面中的一部分或一种行为.可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activity中重用一个Fragment.可以把Fragment任务模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除. Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影

Android Fragment动态创建详解及示例代码

Android Fragment 动态创建 Fragment是activity的界面中的一部分或一种行为.可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activity中重用一个Fragment.可以把Fragment任务模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除. Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影

启动图标-android icon 类似小米天气那样可以动态更改app图标

问题描述 android icon 类似小米天气那样可以动态更改app图标 比如 今天是晴天 app的启动图标会是一张图标,明天如果是阴天又会换成另外一张图标, 求大神 ,求代码. 解决方案 类似makeit的android app 解决方案二: 这个是要根据不同的情况判断的 比如你根据天气网活的数据为晴的时候, setIcon的时候就跳转到太阳的图片,同理,雨 就 用下雨的图片(建议使用switch)

android开发-android中如何对app图标进行点击事件的监听?也就是一键锁屏的效果

问题描述 android中如何对app图标进行点击事件的监听?也就是一键锁屏的效果 如题,android中如何对app图标进行点击事件的监听,也就是类似一键锁屏的功能,一点图片就可以响应 解决方案 本文演示如何在Android中实现程序前后台切换效果. 在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识. 我们都知道,一个Activity 可以启动另一个Activity即使这个Activity是定义在别一个应用程序里的,比如说,想要给用户展示一个地图的信息,现

监控-GIS中怎么动态改变marker图标size 改变图标用marker.setUrl();

问题描述 GIS中怎么动态改变marker图标size 改变图标用marker.setUrl(); 就是目前刚接触gis 在做一个驾培监控系统,目前功能 要求 根据特定条件比如有车辆超速了 需要提醒 但是在地图中 要求用一个标注,此标注图标和原来的不一样 且大小不一样,现在能改变图标 但是不能动态改变大小 求解!

Android获取高清app图标代码分享_Android

Android获取高清app图标只有一个方法,具体内容如下 public synchronized static Drawable getIconFromPackageName(String packageName, Context context) { PackageManager pm = context.getPackageManager(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)

Android获取高清app图标代码分享

Android获取高清app图标只有一个方法,具体内容如下 public synchronized static Drawable getIconFromPackageName(String packageName, Context context) { PackageManager pm = context.getPackageManager(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)

Android 对话框(Dialog)大全详解及示例代码_Android

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Acti