本文介绍了动态改变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" />
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Android对图片Drawable实现变色示例代码,包括了Android对图片Drawable实现变色示例代码的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了Android中图片DrawableCompat利用setTint()对图片Drawable进行变色的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 1.利用color资源对Dra
本文向大家介绍Android 动态菜单实现实例代码,包括了Android 动态菜单实现实例代码的使用技巧和注意事项,需要的朋友参考一下 Android 动态菜单 先上效果图 比较简单,主要就是属性动画的使用和坐标角度的小细节。 实现 实现效果: 图标按照路径一路缩放渐变过来即可。 核心代码 item开启动画和关闭动画为一个逆过程,体现在x,y距离变化上。 x,y的距离开启时距离逐渐增长 这里要注意
本文向大家介绍python实现动态数组的示例代码,包括了python实现动态数组的示例代码的使用技巧和注意事项,需要的朋友参考一下 实现一个支持动态扩容的数组并完成其增删改查 测试代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Android改变ExpandableListView的indicator图标实现方法,包括了Android改变ExpandableListView的indicator图标实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android改变ExpandableListView的indicator图标实现方法。分享给大家供大家参考,具体如下: 1)定义xml文件先,命名为
本文向大家介绍Android实现动态高斯模糊效果示例代码,包括了Android实现动态高斯模糊效果示例代码的使用技巧和注意事项,需要的朋友参考一下 写在前面 现在,越来越多的App里面使用了模糊效果,这种模糊效果称之为高斯模糊。大家都知道,在Android平台上进行模糊渲染是一个相当耗CPU也相当耗时的操作,一旦处理不好,卡顿是在所难免的。一般来说,考虑到效率,渲染一张图片最好的方法是使用Ope
本文向大家介绍Android 改变图标原有颜色和搜索框的实例代码,包括了Android 改变图标原有颜色和搜索框的实例代码的使用技巧和注意事项,需要的朋友参考一下 图标改变颜色:Drawable的变色,让Android也能有iOS那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了。 搜索框: 一般是EditText实现,本文 实现 TextView图片和