概述
本文只是对于framework开发工程师有一滴滴滴滴滴的帮助,我们知道应用可以根据自己需要去anim目录里面定制自己的动画,然后由系统API设置好就生效了。那如果我们想在framework中干一些需要动画的事情,而系统里预制的动画又不能满足需求怎么办,这时我们就需要在系统里去添加自己需要的动画文件了。
动画文件
这个动画文件简单,和你在应用里面自定义动画一样,xxx_xxx.xml,如下所示:
custom_activity_enter_from_left.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="2000">
</alpha>
<translate
android:fromXDelta="0"
android:toXDelta="100%"
android:duration="2000">
</translate>
</set>
存放目录
在应用中我们知道是直接创建anim目录,放在目录下,在代码中直接引用就可以了。但是在framework中我们需要把它放在frameworks/base/core/res/res/anim/目录下,还有其它几个anim的目录,看着像是适配手表、平板之类使用的,感兴趣可以自行去研究。
anim/
animator/
anim-ldrtl/
anim-watch/
如何生效
动画文件建好了,也放进目录了,按道理讲直接编译framework-res.apk后,丢进板子system/framework目录后就可以在代码中引用到了,但还是不行。还需要在frameworks/base/core/res/res/values/symbols.xml文件中把你自定义的动画文件名加上去,酱紫你就可以去引用这些在framework中添加的动画了。
<java-symbol type="anim" name="custom_activity_exit_from_left" />
<java-symbol type="anim" name="custom_activity_enter_from_left" />
<java-symbol type="anim" name="custom_activity_exit_from_right" />
<java-symbol type="anim" name="custom_activity_enter_from_right" />