开发者平台 > 详情

自定义应用动态图标发布时间:2015.10.22 03:10

Z1手机中的未读短信眨眼的功能是ZUI ROM的一大亮点,好多小伙伴表示有新短信都不舍得马上看,就为了多看会儿那可爱的小眼睛。



ZUI ROM中实现了动态应用图标的机制,你的应用同样可以做出萌萌的效果。

 

实现原理

 

由应用提供一个可以动态变化的View,这个View实现了图标的动态展示,然后桌面将这个View加载到桌面上作为动态图标来显示。

 

桌面提供此架构后,应用可以很快的实现动态图标,而且可以支持多个应用的动态图标,而不用桌面额外的对应用进行处理

应用需要做什么?

 

1.         定义动态图标

<activity android:name="com.lenovo.myclock.MainActivity"

              android:label="@string/app_name" >

            <intent-filter>

                <action  android:name="android.intent.category.ACTIVE_ICON" />

                <category android:name="android.intent.category.DEFAULT" />

            </intent-filter>

</activity>

 

2.         如果动态图标需要在当前屏上时触发动效,规则为:

在应用的Androidmanifest.xmlactivity中增加一个:

<category android:name=" action.ACTION_PLAY_ANIM" /> 

应用添加此category后,桌面自行查看应用是否有此值,如果有则会进行判断

桌面发送的规则为: 

intent"launcher.intent.action.ACTION_PLAY_ANIM” 

extra" EXTRA_COMPONENTS” 

intent.putExtra(“EXTRA_COMPONENTS”Hashset<String> );//stringcomponentname,即包名和类名 

应用接收到此intent后在EXTRA_COMPONENTS中取出相应的string列表,来判断本身是否在此列表中

 

3.         如需在其他第三方桌面显示正常的应用图标可按如下定义:

<activity android:name=" com.lenovo.myclock.MainActivity"

              android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

                                 <intent-filter>

                <action  android:name="android.intent.category.ACTIVE_ICON" />

                <category android:name="android.intent.category.DEFAULT" />

               <category android:name=“ action.ACTION_PLAY_ANIM” />//应用是否在当前平时动态图标切换

              </intent-filter>

</activity>

 

 

4.         实现动态图标View

      请统一命名为active_icon.xml

      这个layout实现了可动态变化的View

      具体layout如何实现可以由应用开发人员根据需求来实现。

 

 

注意事项

 

由于是跨进程调用,应用修改完并安装后,此时桌面立刻调用应用布局,应用有可能加载不上,所以在调试时每次安装应用后,最好重启一下桌面。

 

示例程序

activeDemo.zip 实现了每隔一秒钟换一个图标的功能。





20条评论

zdcc21d9 | 2017-05-21 09:48:56

赞赞赞赞赞

aaa | 2017-01-03 11:30:09

真棒

zd532e4a | 2016-11-16 15:30:37

感谢教程!

\\\'aaaaa | 2016-04-29 22:23:43

aaaaaaa

zd990b76 | 2016-03-25 18:44:52

请问怎么设置啊,才能一直有这个动态图

zd7f9c06 | 2016-03-20 03:59:34

这个还真没留意,可是只能动不能眨眼

腾龙渤海 | 2016-03-18 00:08:13

求大神做个QQ的包

腾龙渤海 | 2016-03-18 00:08:09

求大神做个QQ的包

腾龙渤海 | 2016-03-18 00:08:03

求大神做个QQ的包