Animation
Android各种动画效果合集,项目包含了丰富的动画实例(逐帧动画,补间动画,Lottie动画,GIF动画,SVGA动画),体验动画之美,让Android动起来😊😄😎
Install / Use
/learn @kongpf8848/AnimationREADME
中文 | English
Android各种动画效果合集,项目包含了丰富的动画实例,体验动画之美,让Android动起来😊😄😎
</div>下载
<img src="https://github.com/kongpf8848/Animation/blob/master/images/download_from_google_play.png" alt="Get it on Google Play" height="80"> <img src="https://github.com/kongpf8848/Animation/blob/master/images/download_from_github.png?raw=true" alt="Download from Github" height="80">
截图
<div style="display: flex;"> <img src="images/splash.webp" width=30%> <img src="images/guide.webp" width=30%> <img src="images/telegram.webp" width=30%> <img src="images/kmail.webp" width=30%> <img src="images/pdj_guide.webp" width=30%> <img src="images/autohome.webp" width=30%> </div>逐帧动画
逐帧动画是一帧一帧进行播放的,它的原理与GIF类似,按照预先定义好的图片序列顺序进行播放。
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="100" android:drawable="@drawable/loading01" />
<item android:duration="100" android:drawable="@drawable/loading02" />
<item android:duration="100" android:drawable="@drawable/loading03" />
<item android:duration="100" android:drawable="@drawable/loading04" />
<item android:duration="100" android:drawable="@drawable/loading05" />
<item android:duration="100" android:drawable="@drawable/loading06" />
<item android:duration="100" android:drawable="@drawable/loading07" />
<item android:duration="100" android:drawable="@drawable/loading08" />
<item android:duration="100" android:drawable="@drawable/loading09" />
<item android:duration="100" android:drawable="@drawable/loading10" />
<item android:duration="100" android:drawable="@drawable/loading11" />
<item android:duration="100" android:drawable="@drawable/loading12" />
</animation-list>
补间动画
|动画类型|XML配置方式|Java代码实现方式| |:---:|:---:|:---:| | 透明度动画|alpha |AlphaAnimation| | 缩放动画|scale|ScaleAnimation| | 旋转动画|rotate |RotateAnimation| | 平移动画|translate |TranslateAnimation|
属性动画
直接更改对象的属性来实现的动画。工作原理:在一定时间间隔内,通过不断调用set方法对值进行改变,并不断将该值赋给对象的属性,从而实现该对象在该属性上的动画效果,详细的属性动画介绍可参考🔗官方文档

转场动画
Google在Android 5.0之后推出的一种动画效果,就是以动画的形式从一个场景过渡到另一个场景,可以参考🔗Material-Animations
Lottie动画
Lottie是Airbnb推出的一套跨平台的动画完整解决方案,它能够帮助开发者直接加载json格式的动画文件在Android、iOS 和 Web平台上,实现100%与设计稿相同的动画效果,而无需关心中间的实现细节。设计师只需要使用 After Effectes 设计出动画之后,通过使用Lottie提供的Bodymovin插件将设计好的动画导出成json格式的文件交付给开发即可。 🔗Lottie网站
Tgs动画
IM软件Telegram推出的全新的Sticker贴纸格式,贴纸文件格式为.tgs,基于Lottie json文件改造而来。🔗Telegram官网,🔗GitHub
<div style="display: flex;"> <img src="images/intro_telegram_1.png" width=30%> <img src="images/intro_telegram_2.png" width=30%> </div>GIF动画
GIF(Graphics Interchange Format)是由CompuServe公司开发的一种图像文件格式,可以将多幅图像保存到一个图像文件,展示的时候将多幅图像数据逐帧读出并显示到屏幕上,从而形成动画效果。在Android中播放GIF通常有以下几种方式:
- ~~使用Android SDK中自带的android.graphics.Movie类(已过时)~~
- 使用Glide,Fresco等图片加载类库,Glide支持加载本地和网络上的GIF图片
- 使用giflib类库在native层解码GIF,使用FrameSequenceDrawable的双缓冲机制进行绘制展示GIF中的每一帧图像
- 使用android-gif-drawable类库,其底层也是使用giflib进行GIF解码
SVGA动画
SVGA是一种同时兼容Android/iOS/Flutter/Web平台的动画格式。🔗SVGA官网

Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
