1. 动画类型
在android开发中,完成设计师设计的动画的途径有很多种。
(1). 属性动画(Property Animtion)
Creates an animation by modifying an object's property values over a set period of time with an Animator.
通过使用Animator类修改object 的属性来实现动画。 注意属性动画可以为所有的 Object类来作动画。
(2). 视图动画(View Animation)
Tween animation: Creates an animation by performing a series of transformations on a single image with an Animation
Frame animation: or creates an animation by showing a sequence of images in order with an AnimationDrawable.
补间动画:通过使用Animation类对单个view作一系列变形来实现动画。
帧动画:通过使用AnimationDrawable来创建动画来顺序展示一连串的图片。
(3). lottie库
lottie库是Airbnb开源的支持Android,ios,ReactNative的动画库,设计师利用AE上插件导出json文件,研发人员即可使用,可以省去研发人员的大量事件,但缺点是目前还不能完成所有的动画。
(4). gif
Fresco 是一个强大的图片加载组件。使用它之后,你不需要再去关心图片的加载和显示这些繁琐的事情! 支持 Android 2.3 及以后的版本。Fresco 支持 GIF 和 WebP 格式的动画图片。
String path = ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ getResources().getResourcePackageName(R.raw.gif_pic) + "/"
+ getResources().getResourceTypeName(R.raw.gif_pic) + "/"
+ getResources().getResourceEntryName(R.raw.gif_pic);
Uri uri = Uri.parse(path);
ControllerListener controllerListener = new BaseControllerListener() {
@Override
public void onFinalImageSet(String id, @Nullable ImageInfo imageInfo, @Nullable Animatable anim) {
if (anim != null) {
anim.start();
}
}