iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android动态更换应用图标的方法
  • 923
分享到

Android动态更换应用图标的方法

2023-07-02 14:07:59 923人浏览 安东尼
摘要

这篇文章主要介绍“Android动态更换应用图标的方法”,在日常操作中,相信很多人在Android动态更换应用图标的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android动态更换应用图标的方法”的疑

这篇文章主要介绍“Android动态更换应用图标的方法”,在日常操作中,相信很多人在Android动态更换应用图标的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android动态更换应用图标的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

技术实现

如果说多年以前,实现图标的切换还是一种时髦的技术,那么,我们可以直接使用PackageManager就可以实现动态更换桌面图标。实现的细节是,在Manifest文件中使用标签准备多个Activity入口,没个activity都指向入口Activity,并且为每个拥有标签的activity设置单独的icon和应用名,最后调用SystemService 服务kill掉launcher,并执行launcher的重启操作。

首先,我们在AndroidManifest.xml文件中添加如下代码:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    package="com.xzh.demo">    <!-- 权限-->    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>    <application        android:allowBackup="true"        android:icon="@mipmap/wb_default_loGo"        android:label="@string/app_name"        android:roundIcon="@mipmap/wb_default_logo"        android:supportsRtl="true"        android:theme="@style/Theme.AndroidDemo">       ...//省略其他代码        <!-- 默认微博-->        <activity-alias            android:name="com.xzh.demo.default"            android:targetActivity=".MainActivity"            android:label="@string/app_name"            android:enabled="false"            android:icon="@mipmap/wb_default_logo"            android:exported="true">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity-alias>        <!-- 3D微博-->        <activity-alias            android:name=".threedweibo"            android:targetActivity=".MainActivity"            android:label="@string/wb_3d"            android:enabled="false"            android:icon="@mipmap/wb_3dweibo"            android:exported="true">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity-alias>        ... //省略其他    </application></manifest>

上面配置中涉及到的属性如下:

  • android:name:注册的组件名字,启动组件的名称。

  • android:enabled:是否启用这个组件,也就是是否显示这个入口。

  • android:icon:图标

  • android:label:名称

  • android:targetActivity:默认的activity没有这个属性,指定目标activity,与默认的activity中的name属性是一样的,需要有相应的java类文件。

接着,我们在MainActivity触发Logo图标更换逻辑,代码如下:

class MainActivity : AppCompatActivity() {    var list: List<LogoBean> = ArrayList()    var recyclerView: RecyclerView? = null    var adapter: LogoAdapter? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        initView()        initData()        initRecycle()    }    private fun initView() {        recyclerView = findViewById(R.id.recycle_view)    }    private fun initData() {        list = Arrays.asList(            LogoBean(R.mipmap.wb_default_logo, "默认图标", true),            LogoBean(R.mipmap.wb_3dweibo, "3D微博", false),            LogoBean(R.mipmap.wb_cheese_sweetheart, "奶酪甜心", false),            LogoBean(R.mipmap.wb_chocolate_sweetheart, "巧克力", false),            LogoBean(R.mipmap.wb_clear_colorful, "清透七彩", false),            LogoBean(R.mipmap.wb_colorful_sunset, "多彩日落", false),            LogoBean(R.mipmap.wb_colorful_weibo, "炫彩微博", false),            LogoBean(R.mipmap.wb_cool_pool, "清凉泳池", false),            LogoBean(R.mipmap.wb_fantasy_purple, "梦幻紫", false),            LogoBean(R.mipmap.wb_fantasy_starry_sky, "幻想星空", false),            LogoBean(R.mipmap.wb_hot_weibo, "热感微博", false),        )    }    private fun initRecycle() {        adapter =LogoAdapter(this,list);        val layoutManager = GridLayoutManager(this, 3)        recyclerView?.layoutManager = layoutManager        recyclerView?.adapter = adapter        adapter?.setOnItemClickListener(object : OnItemClickListener {            override fun onItemClick(view: View?, position: Int) {                 if(position==1){                     changeLogo("com.xzh.demo.threedweibo")                 }else if (position==2){                     changeLogo("com.xzh.demo.cheese")                 }else if (position==3){                     changeLogo("com.xzh.demo.chocolate")                 }else {                     changeLogo("com.xzh.demo.default")                 }            }        })    }    fun changeLogo(name: String) {        val pm = packageManager        pm.setComponentEnabledSetting(            componentName,            PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP        )        pm.setComponentEnabledSetting(            ComponentName(this, name),            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP        )        reStartApp(pm)    }    fun reStartApp(pm: PackageManager) {        val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager        val intent = Intent(Intent.ACTION_MAIN)        intent.addCategory(Intent.CATEGORY_HOME)        intent.addCategory(Intent.CATEGORY_DEFAULT)        val resolveInfos = pm.queryIntentActivities(intent, 0)        for (resolveInfo in resolveInfos) {            if (resolveInfo.activityInfo != null) {                am.killBackgroundProcesses(resolveInfo.activityInfo.packageName)            }        }    }}

注意上面的changeLogo()方法中的字符串需要和AndroidManifest.xml文件中的<activity-alias>的name相对应。运行上面的代码,然后点击应用中的某个图标,就可以更换应用的桌面图标,

如下图所示:

Android动态更换应用图标的方法

到此,关于“Android动态更换应用图标的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Android动态更换应用图标的方法

本文链接: https://www.lsjlt.com/news/342597.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android动态更换应用图标的方法
    这篇文章主要介绍“Android动态更换应用图标的方法”,在日常操作中,相信很多人在Android动态更换应用图标的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android动态更换应用图标的方法”的疑...
    99+
    2023-07-02
  • Android动态更换应用图标详情
    目录一、背景二、技术实现一、背景 近日,微博官方发布了一项新功能,即可以在App设置中动态更换微博的显示图标样式。根据微博官方的说法,除了最原始的图标外,微博还推出了另外10种不同的...
    99+
    2024-04-02
  • Android开发中实现home图标动画切换效果的方法
    本篇文章为大家展示了Android开发中实现home图标动画切换效果的方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如图所示:实现这个效果仅需几步:首先,该页面的布局是一个DrawerLayou...
    99+
    2023-05-31
    android roi home
  • Windows 7 驱动器图标更换方法与软件下载地址
    今天,就给大家介绍两款可以个性化更换Windows7驱动器图标的小软件。   先看下效果:      图为:变换之前   图为:变换之后   虽然两款小软件都是英文界面,不过因为由于功能相当简单,相信大家看到界面就会操作...
    99+
    2023-05-25
    驱动器 图标 软件 Windows 7 地址 方法
  • 揭秘双十一手机淘宝图标如何被动态更换
    目录1、Android如何动态更换桌面图标1.1使用场景1.2知识点1.3使用Activity-alias2、巨坑2.1App的覆盖2.2桌面上出现两个图标的问题2.3桌面上图标消失...
    99+
    2024-04-02
  • 用DiskGenius转换动态磁盘的方法
    用DiskGenius(软件下载地址https://www.jb51.net/softs/44330.html)转换动态磁盘     兼说 Windows 7 不能导入动态磁盘的问题,提示说...
    99+
    2023-05-26
    用DiskGenius转换动态磁盘 动态 DiskGenius 磁盘 方法
  • win7更换主题会导致个性化图标也被更换的解决方法
      会弄个性化图标的人,经常在看腻一个主题的时候,都会选择换一个主题,但是最悲剧的事情就是。我一换主题所有的个性化图标都要重新设置一次,有没有方法让我更换主题个性化图标还存在呢   1、右键桌面空白处,选择个性化设置 ...
    99+
    2023-06-01
    win7 更换主题 个性化图标 解决 图标 主题 个性化 方法
  • android 调用JNI SO动态库的方法
    总结一下: android 调用JNI 分为静态调用与动态调用(不论动态还是静态前提都是NDK环境已经配置好的前提下) 一、静态主要就是将c(.c)或者c++(cpp)的源文件直接加...
    99+
    2024-04-02
  • Android实现动态改变app图标的示例代码
    本文介绍了动态改变app图标,分享给大家,具体如下:代码实现如下:<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:l...
    99+
    2023-05-30
    android app图标 pp
  • win10鼠标指针换图案的方法
    这篇文章主要介绍了win10鼠标指针换图案的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10鼠标指针换图案的方法文章都会有所收获,下面我们一起来看看吧。首先右键开始菜单,打开“设置”接着打开其中的“...
    99+
    2023-07-02
  • Android动态添加view的方法示例
    由于项目需求菜单写活,效果如下:这里的按钮数量是可变的.png由于不是可滑动控件,我用的百分比布局做的适配 LinearLayout typeLayout = (LinearLayout) headerView.findViewById(R...
    99+
    2023-05-30
    android 动态 添加view
  • 基于element-ui动态换肤的方法
    这篇文章主要讲解了“基于element-ui动态换肤的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于element-ui动态换肤的方法”吧!在安装好element-ui@2.x 以后...
    99+
    2023-06-29
  • python实现自动更换ip的方法
    from: http://www.jb51.net/article/65513.htm ...
    99+
    2023-01-31
    方法 python ip
  • android调用JNI SO动态库的方法是什么
    这篇文章主要介绍“android调用JNI SO动态库的方法是什么”,在日常操作中,相信很多人在android调用JNI SO动态库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”android调用...
    99+
    2023-06-25
  • 关于VS+QT5应用程序换图标的解决方案
    方案1(QT) 1 .ico图标文件放到Resource file中,然后在vs中项目中找到Resource file,右键添加现有项,把刚才的ico 文件添加进来 2 在.pro ...
    99+
    2024-04-02
  • Ubuntu中Unity更改程序图标的方法
    这篇文章主要介绍了Ubuntu中Unity更改程序图标的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Unity是桌面环境界面,主要用于Ubuntu系统,能够很好的支持低...
    99+
    2023-06-13
  • Android实现修改状态栏背景、字体和图标颜色的方法
    前言:Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼.需求场景:当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于...
    99+
    2023-05-30
    android 状态栏 roi
  • 动态vps秒换ip的方法是什么
    有几种方法可以实现动态VPS秒换IP的方法:1. 使用VPN:使用VPN可以快速更换VPS的IP地址。VPN可以模拟不同国家和地区的...
    99+
    2023-06-08
    动态vps秒换ip vps
  • Echart中国地图更换背景图的方法示例
    目录需求解题思路解题方法最终效果需求 ui设计稿给了一张下面这张图,背景图用线条画出来的, 心里也是...,没办法也是要实现出来。 解题思路 1.思路一 在canvas外层添加一个...
    99+
    2024-04-02
  • javascript让图片自动变换的方法
    这篇文章主要介绍了javascript让图片自动变换的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:1、创建图片路径数组;2、用timeInterval定义切换时间...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作