在我们的使用Android系统时,经常能看到很多图标上线会标有一些数字,比如短信数量,邮件数量等等,这很好奇, 这是怎么实现的呢?且他会根据实际情况不断的变化,很是神奇呀,默认Android是不支持的,那我们今天就来慢慢的讲讲,他是怎么实现的。
今天介绍两种方法,一种是应用快捷方式, 第二种是修改Iauncher 代码来达到动态icon的效果,配合其他应用来实现。
在应用中发现,普通的应用都可以,这就更神奇了,比如豌豆荚,它会提示你有几个应用要升级,很好奇,研究了一番,发现他是有两个应用图标,我们知道应用程序真正的只有一个图标的,那另外一个是什么呢?对啦,是应用程序的快捷方式,他可以创建多个或者一个,那我们就找到了今天的第一种方法去实现它啦。
第一种就是就是很简单的,我们进行变通,可以使用桌面程序创建的快捷方式去实现这个,当我们的应用程序数据变化改变的时候就重新安装 一个新的快捷方式,且它上面标识着我们的一些数据,这样就实现了以假乱真的情况。哪些icon我们可以提前放在程序里面,关于如何加载快捷方式,可以看看前面转载的一篇文章http://blog.csdn.net/wx_962464/article/details/7457939。
第二种方式就是修改launcher的代码,然后配合其他的应用来实现动态icon 的效果,在实现它之前,先要大致了解在launcher在应用安装,卸载,更新的时候是怎么做的,这里大概介绍下,在应用安装,更新,卸载的时候,都会有广播发出,launcher在LauncherApplication 中注册广播,在LauncherModel中处理接收到广播的消息,广播带的参数为应用包的数组,然后在一个线程Task中去重新加载更新这几个包相应的内容,比如icon,文字等,那么我就可以模拟这样的效果,在application中也注册一个广播,比如appchanged
等然后在Launchermodel中处理,处理可以模拟应用更新的部分,进行一个线程处理,最主要的是在Launcher allApp 界面的图标怎么变,我们发现Launcher中的文字和图标在PagedViewIcon 这个类里面生成的,它实际是一个Textview,只是进行了重写,添加了相关的属性,图标是在这个方法setCompoundDrawablesWithIntrinsicBounds(null, new FastBitmapDrawable(mIcon), null, null); 中设置的,这个在很多的view中都有这个方法。他可以设置控件上下左右的图标,Launcher
allApp 界面的图标就是用TextView 设置的图片,所以在这里可以根据应用程序的包名然后进行一些特殊的属性进行判断,然后设置显示不同的图标,对于图标的大小我们可以使用Utilities 类的createIconBitmap 方法适配Launcher 中图标。在别的应用程序中发送appchanged广播,并带上包名参数,当达到pagedViewIcon 中指定的条件,设置指定的图片,就可以实现动态的变化了,这个依赖外来程序的广播,这样就可以实现动态icon了。
上面只是说出了,我最近做动态icon的做法,并实现了,希望有同样的需求的可以参考,没有进行图文解释,但是思想是这样的,有什么不明白的,说的不好的请给我留言,我将一一回复。
分享到:
相关推荐
Change Android App launcher Icon and App Name programmatically ! `` `` `` ![AppIconNameChanger - Example2](https://s19.postimg.org/hmtanqmub/App_Icon_Name_Changer_example_02.png) `` `` `` Download ...
Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
总结android launcher的日历图标随着日期的变化而更新,请查关键字UPDATE APPICON。
Android 实现iphone主屏幕文件夹展开合并效果(OpenFolder)
写了一篇文章,总结android launcher的日历图标随着日期的变化而更新,看到有几个朋友在修改源码的时候,出现了几个问题,在此,我把这个修改相关的源码放在资源上,供下载学习。下载打开后,请查关键字UPDATE APP...
主要介绍了Android开发实现Launcher3应用列表修改透明背景的方法,结合实例形式分析了Launcher3相关配置文件与功能函数修改设置操作技巧,需要的朋友可以参考下
一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5 2 Launcher 图标加入默认背景 ...
本文实例讲述了Android开发中Launcher3常见默认配置修改方法。分享给大家供大家参考,具体如下: Launcher概述 Launcher是开机完成后第一个启动的应用,用来展示应用列表和快捷方式、小部件等。Launcher作为第一个...
9.0 10.0Launcher3修改默认的app图标和hotseat图标为圆角图标
每当双 11、12 来临之际,Android 手机 Launcher 中的淘宝、天猫图标就会变成双 11、12 主题的图标。该 Demo 就实现了动态切换图标、名称
android Launcher2 2X2 缩放icon 图标 修改的标记 xzedit xz edit 两个标记
主要介绍了Android App更改应用的图标的实现方法的相关资料,主要是通过入口Activity android:icon="@drawable/new_app_icon" 指向新的应用图标,需要的朋友可以参考下
Solid launcher supports icon pack based on Apex scheme. To apply an icon pack, create intent with following action, and put icon pack's package name as extra. Then you have to startActivityForResult ...
android:icon=@mipmap/ic_launcher android:label=@string/app_name android:supportsRtl=true android:theme=@style/AppTheme> <activity android:name=.MainActivity> <action android:name=android.in
android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > android:name=".MainActivity" android:label="@string/title_activity_main" android:theme=...
修改launcher2,改变launcher的icons的布局,放大icons;修改的地方标记是xz edit
在android手机中创建应用APP的快捷方式,在本实例中,创建快捷方式是从用户单击了按钮开始,当然这只是演示,在实际使用中,可能由APP安装程序直接创建快捷方式,实现方法与以下代码相似: //按下了按钮时 ...
android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > android:name="com.example.save.CopyOfMainActivity" android:label="@string/app_name" > ...
材料设计图标 Android 的 Material Design 图标,扁平化、可缩放并删除了文件名上的前置文字。
android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > android:name=".MainActivity" android:label="@string/title_activity_main" android:theme=...