Giter Club home page Giter Club logo

rebooters / androidanimationexercise Goto Github PK

View Code? Open in Web Editor NEW
1.8K 54.0 345.0 102.88 MB

Android 动画各种实现,包括帧动画、补间动画和属性动画的总结分享

License: Apache License 2.0

Java 70.22% HTML 2.64% JavaScript 1.16% Kotlin 19.49% Ruby 0.01% CSS 0.10% SCSS 0.48% CMake 0.07% C 5.76% C++ 0.05% Groovy 0.02%
android animation bitmap view viewpager gradle-plugin imitate gradle gradle-script gradle-plugin-development

androidanimationexercise's Introduction

AndroidAnimationExercise

Alt

Android CILanguage

这是一个关于Android中各种View的集合,里面包含自己日常开发和博客总结中的代码。 主要内容是Android动画、Android自定义View 相关的知识包含一些常见应用中动画效果的模仿实例. 随着时间的推移,里面积累的很多代码,大致用5个Fragment 做了分类:

Apk 下载体验

扫一扫体验

打开

扫一扫体验

ImitateFragment (模仿三方应用特效)

TraditionFragment (传统动画)

  • 传统动画即帧动画和补间动画相关的代码
  • Blur Android 实现毛玻璃效果的demo
  • Activity 切换动画
  • ViewPager 切换动画

PropertyFragment  (属性动画)

  • 属性动画特点及使用方式
  • 仿支付宝支付动画(具体分析可查看日志Android 动画实战
  • 仿饿了吗商品加入购物车动画
  • Viewgroup 动画(官方demo)
  • Reveal Animation

关于以上两种动画的区别分析可查看日志Android 动画总结

ViewsFragment (自定义View先关)

OtherFragment (其他杂项)

  • Android 截屏后保存图片至手机相册
  • 拼图游戏(继承自RelativeLayout的动画效果,来自鸿洋大神)
  • Android WebView 中 Java于JavaScript 互相调用
  • Android 打开Camera或从相册选取照片,如何正确压缩图片,确保不发生OOM (Android Bitmap 初探
  • Bottom Action Sheet 菜单
  • Bitmap LRUCache,LruDiskCache 相关

What's New

随着累计的动画效果越来越多,导致工程内代码越来越多,app 运行和编译时间变长。因此采用了组件化的方式,单独抽取了 imitate moulde .

imitate 内的内容全部由 kotlin 语言实现,后续所有内容都会往这个里写,app这个module只作为以往的积累,尽量不再更改。 本着组件化的**,imitate 可以作为 app 的依赖组件,也可以单独运行,修改 gradle.properties 中的配置信息即可。

在组件化的过程中,使用 ARouter 非常方便。完全解决了页面跳转的问题。

Android 构建流程 Gradle 的学习和 Gradle 插件自定义

  • 由于 AGP 8.0 开始 Gradle 官方移除了 Transform API,因此这部分内容已经不适用于 AGP 8.0 以上版本。 main 分支已删除这部分代码,使用 AGP 8.0 以下版本仍然可以用 master 分支进行编译和学习
  • 对于这部分的功能,将通过新的 API 尝试在 main 分支继续实现

在 buildSrc 内包含一些关于 gradle 构建流程的自定义内容,包括

  • 实现生成 apk 根据 flavor 改名。
  • 对构建流程中执行的 task 按执行时长打印,发现编译耗时的 task
  • 在构建流程中对特定注解的方法或类进行耗时检测。
  • 对代码中点击事件的插桩埋点
  • 通过配置对三方库中的代码进行特定的插桩,实现特定的功能。

以下是部分内容截屏动画

galaxy 效果 && gif 反转

skeleton && bitmap mesh 效果

parallax 效果 && 2048 游戏(pure web)

仿懂球帝球员数据网状图 && 仿简书生成长图文章效果

仿知乎广告效果动画 && pure 3D animation view

AD Animation

动图理解scrollTo & translate 区别

更多动画,点击打开

仿QQ侧滑菜单效果

波浪动画

简易时钟效果

物理动画 & Lottie Animation

帧动画 & 补间动画

仿探探效果 & 约束布局(ConstraintLayout AnimationSet) 动画

支付效果 & loading

属性动画实例

一些系统信息

Star History Chart

diagram

androidanimationexercise's People

Contributors

rebooters avatar shisheng-1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidanimationexercise's Issues

好项目都是慢慢改来的

作者您好,我闲来没事搜些关于原生动画的例子来看看 ,如意中发现了你这个开源
刚开始挺有兴致的玩着,的确是一个值得学习的例子,可是玩着玩着发现了好多可优化的地方,你用了leaks也是检测内存泄漏,的确是蛮多的
大部分问题出现得也很简单,主要是代码不够严谨规范引起;不过也还好,都是些小问题,作者您以后慢慢优化着。

内容过多的时候会产生oom

内容过多的时候会产生oom
java.lang.OutOfMemoryError: Failed to allocate a 75311756 byte allocation with 15657184 free bytes and 14MB until OOM

error?怎么改

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

运行项目出错

Illegal char <:> at index 137: F:\AndroidStudioProjects\AndroidAnimationExercise-master\app\build\intermediates\instant-run-apk\charge\debug\animation-3.0-2018-10-07 13:20-chargeDebug.apk

什么时候支持AGP7+

虽然Transform计划在8.0被完全移除掉,但是7.0-7.2还在频繁改动API非常不稳定。所以我很纠结引入项目代码是用新API还是旧的。

apk下载崩溃

体验apk下载到手机上,打开主页崩溃,体验不了

demo下载地址失效了

demo下载地址失效了
无法访问此网站检查 d.7short.com 中是否有拼写错误。
DNS_PROBE_FINISHED_NXDOMAIN

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.