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

 更新时间:2017年09月01日 10:41:31   作者:L展菲Q  
本篇文章主要介绍了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" />

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

相关文章

  • Android Notification使用方法总结

    Android Notification使用方法总结

    这篇文章主要介绍了Android Notification使用方法总结的相关资料,这里提供了四种使用方法,需要的朋友可以参考下
    2017-09-09
  • Android 自定义缩短Toast显示时间的实例代码

    Android 自定义缩短Toast显示时间的实例代码

    这篇文章主要介绍了Android 自定义缩短Toast显示时间,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 不允许错过的Anndroid技术经验60条

    不允许错过的Anndroid技术经验60条

    不允许错过的Anndroid技术经验60条,与大家分享,希望可以提高大家Android开发水平,感兴趣的朋友可以参考一下
    2016-02-02
  • Android自定义相机实现定时拍照功能

    Android自定义相机实现定时拍照功能

    这篇文章主要为大家详细介绍了Android自定义相机实现定时拍照功能的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android ScrollView无法填充满屏幕的解决办法

    Android ScrollView无法填充满屏幕的解决办法

    这篇文章主要介绍了Android ScrollView无法填充满屏幕的解决办法的相关资料,这里提供实例和解决办法,需要的朋友可以参考下
    2017-07-07
  • Android自定义扇形倒计时实例代码

    Android自定义扇形倒计时实例代码

    最近工作中需要做一个倒计时,是那种一个圆,慢慢的被吃掉的动画倒计时,由于自己是android小白,效果还不是多满意,先给大家分享实例代码,仅供大家参考
    2017-03-03
  • android获取当前接入点信息判断是ctwap还是ctnet实例代码

    android获取当前接入点信息判断是ctwap还是ctnet实例代码

    这篇文章主要介绍了android获取当前接入点信息判断是ctwap还是ctnet的方法,大家参考使用吧
    2013-11-11
  • android开机自动启动app的解决方法

    android开机自动启动app的解决方法

    这篇文章主要为大家详细介绍了android开机自动启动app的解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android实现九宫格拼图游戏

    Android实现九宫格拼图游戏

    这篇文章主要为大家详细介绍了Android实现九宫格拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Android中Intent与Bundle的使用详解

    Android中Intent与Bundle的使用详解

    这篇文章主要给大家总结介绍了关于Android中传值Intent与Bundle的关系,文中通过示例代码以及图文介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧<BR>
    2022-11-11

最新评论