0

0

如何学习 Android Animation?_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-21 08:58:57

|

1291人浏览过

|

来源于php中文网

原创

在 android 开发者网站 搜索『animation』,通过『blog』过滤搜索结果,可以获得很多博文,我只摘录了前两页,并把它们分成了两类:

动画可以做成什么样子(第1类)

下述几篇博文通过如下3个方面向开发者展示『动画』:

  • 给出一些指导原则,阐述为什么要如此做动画,或者这样的动画有什么好处;

  • 给出 GIF 动图,直观地展示动画是什么;

  • 给出实现这种动画的代码片段(关键类、方法、资源文件)或者实现思路;

    立即学习前端免费学习笔记(深入)”;

这非常棒,可以帮助我们很快建立动画的印象,了解某个名词代表的动画是什么样子,应该怎么去实现。而且代码片段很多是从开源项目中摘录的,意味着我们可以调试这些动画。

2014-08-05 Material design in the 2014 Google I/O app

这篇文章的作者是 Google I/O app 的主设计师,而 I/O app 的作用之一是提供 Android 设计和开发的最佳实践(it serves as a reference demo for Android design and development best practices)。文中特别提到了最喜爱的 app 细节之一就和动画有关:浮动操作按钮(floating action button)的状态根据“用户是否会出席当前页面的这个会议”而改变,状态改变时伴随着动画。文中详细地讲到了动画实现的步骤,虽未罗列代码,但可以从 github-google-io-app 获取源码,了解实现细节。

2014-10-24 Implementing Material Design in Your Android app

这篇文章一半篇幅在讲『Motion』:当用户触摸屏幕时,所有的变化应从接触点开始向外辐射,建立画面过渡时的关联和连续性,这些必须是有意义且友好的。Materials 通过这种方式向用户提供反馈,使用户注意到变化,从而帮助到用户。(to focus attention, establish spatial relationships and maintain continuity. Materials respond to touch to confirm your interaction and all changes radiate outward from your touch point. All motion is meaningful and intimate, aiding the user’s comprehension.)。分别介绍了:

  • Activity & Fragment Transitions:在两个页面间平滑过渡,常见的场景是从列表视图切换到详情视图;

  • Ripples:一种波纹效果,波纹从触点开始向外扩散直至填充整个view,点击继承自 Theme.Material 的 button 就可以看到这种效果;

  • StateListAnimator:View 状态改变时的动画;

  • Circular Reveal:一个圆形扇面从触点开始向外辐射直至填充整个view,这种过渡效果常用于展示新的内容;

  • Interpolators:插值器定义了动画改变的速率,比如允许 alpha, scale, translate, rotate 加速、减速、重复等。比如插值器 fast_out_slow_in, 加速开始、逐渐降速直至结束,这样的动画效果使得对象在整个运动轨迹中,在接近终点的位置耗费较多时间。而根据不同的场景,选择不同的插值器或者自定义插值器,就可以使动画更具意义,摆脱千篇一律的印象。

2015-05-28 Announcing the Material Design Showcase and Awards

这篇文章先回顾了14年6月首次公布 material design 时的愿景『a single design system that can work across platforms and brands』。但这些愿景和 material design 的设计思想全是通过『假想中的 App』 来演示的。然后转眼到了15年5月,也就是这篇文章发布的日期,世界已经发生了变化,很多 App 接受并通过 Android 5.0 SDK 和 AppCompat 实现了material design。

因此特别收集了 18 个符合 material design 的 app 向众人展示,其中 6 个 app 由于在 material design 某一方面做的特别出色而被授予了第一届 Material Design Awards. 因动画效果而获奖的是 Tumblr: Delightful Animation.
动画效果可以做成什么样子,官方告诉你去看看 Tumblr.

2015-06-16 More Material Design with Topeka for Android

这篇文章是开源 Android App 项目 Topeka for Android 的说明文档,用来演示 material design 的设计原则,帮助开发者在不同的平台上建立统一的用户体验。(原文:It demonstrates that the same branding and material design principles can be used to create a consistent experience across platforms.)

Topeka 是一个趣味问答应用,包含9个种类的问题,以网格布局呈现,点击某个格子进入回答问题的页面,一个问题回答完后就切换到下一个问题,有选择题填空题等各种类型的问题(对应各种UI组件)。包含了很多动画元素:

  • Transitions: 很棒的 Activities 转场动画(great transitions between Activities);

  • Animations: 答题时有精心编排的动画,一旦答题就弹出一个浮动操作按钮,点击按钮提交答案就进入了下一个问题,这时会根据回答正确与否播放对应的动画;

    ChatDOC
    ChatDOC

    ChatDOC是一款基于chatgpt的文件阅读助手,可以快速从pdf中提取、定位和总结信息

    下载
  • Property Animations:为 circular reveal 增加颜色渐变的动画(从FAB的颜色变成透明)以营造出消融的效果(Adding a color animation from the FAB's color to transparent creates a dissolve like effect to the circular reveal)。
    (上上一个gif包含这种效果,但太快了看不出效果,下面这个gif延长了时间,为了突出动画)

概述动画相关的类和接口(第2类)

2011-05-30 Introducing ViewPropertyAnimator
2011-02-24 Animation in Honeycomb
2011-11-01 Android 4.0 Graphics and Animations

前两篇文章先讨论了一个问题,已经有了能实现 move, scale, rotate, and fade 这些视图动画的 android.view.animation ,为什么还要在 3.0 新引入的 APIs?带来了哪些新特性?然后进一步展示了这些新特性的强大便利之处。第三篇文章讨论了 4.0 在 3.0 核心特性基础上增加的一小点儿改善。(These articles discuss the new APIs added in 3.0 that make animation in Android easier, more powerful, and more flexible. The Android 4.0 improvements discussed below are small additions to these core facilities.)

这几文章排在搜索结果的前几位,可见其重要程度,作者是 Chet Haase,一个致力于图形和动画研究的 Android 开发者,可以从他的 个人博客graphics-geek.blogspot.com 阅读更多相关主题的博文。

需要说明的是 HONEYCOMB 3.0( about versions android-3.0 highlights ) 发布于 2011.02,引入了New animation framework;3.1 发布于 2011.05;ICE_CREAM_SANDWICH 4.0 发布于 2011.11。而这几篇博文的发布时间与相应的系统版本发布时间一致,而且其中两篇文章在 Android API Guides: Animation and Graphics 页面有推荐,所以真的应该多关注和学习官方开发者的文章

2015-04-21 Android Support Library 22.1
这篇文章介绍了 Android support library 22.1 版本带来的新特性。与动画有关的内容是:Lollipop android.R.interpolator 新增的几个 Interpolators 已经在 Support V4 得到支持。

通读完上述几篇文章后,我们就能够了解到『动画可以做成什么样子』、『实现这些动画的类和接口,及技术的演变历史』。是不是有种高屋建瓴、运筹帷幄的感觉?我的感觉是,不至于淹没于 Android 文档的海洋中,被巨多的技术细节打的晕头转向。而且我觉得学习 demo 时在精不在多,所以应该先从官方的 sample 以及上述官方文章中的 demo 入手,同时查阅 API guides:

Android Training & Guides

Android 开发者网站提供的 Training:
Animating Views Using Scenes and Transitions
Adding Animations
Defining Custom Animations

Android 开发者网站提供的 API Guides:
Animation and Graphics Overview

有很多途径获取官方 sample:Welcome to code samples for Android developers,比如直接在 Android Studio 中导入:

学习路线图

非官方的博文也有很棒的,比如下面这一篇:
Exploring Meaningful Motion on Android ,这是译文 探索安卓中有意义的动画 ,这是文章对应的开源项目 hitherejoe/animate ,1280颗星。
类似的一个开源项目 lgvalle/Material-Animations,3840颗星。

但如果需要系统地学习某块知识点,从第一手和权威的角度讲,官网及其博客是开发者的不二选择。不要介意在阅读英文文档上花费的时间,这些都是值得的。看不懂的再查阅相关文章相佐证。

所以我花了大概三天时间,整理出这篇文章,制定了我的学习路线图:

  • 通读官方 blog(上述列出的);

  • 学习官方 training(上述列出的);

  • 学习 GitHub 高星(感兴趣的)项目(好多人推荐了好多非常好的项目);

  • 阅读其它高质量的 blog 查缺补漏(善用 google);

  • Go! Go! Go! li21 SH 2016-01-16 ~ 2016-01-23

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    WorkBuddy
    WorkBuddy

    腾讯云推出的AI原生桌面智能体工作台

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    TypeScript类型系统进阶与大型前端项目实践
    TypeScript类型系统进阶与大型前端项目实践

    本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

    49

    2026.03.13

    Python异步编程与Asyncio高并发应用实践
    Python异步编程与Asyncio高并发应用实践

    本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

    89

    2026.03.12

    C# ASP.NET Core微服务架构与API网关实践
    C# ASP.NET Core微服务架构与API网关实践

    本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

    276

    2026.03.11

    Go高并发任务调度与Goroutine池化实践
    Go高并发任务调度与Goroutine池化实践

    本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

    59

    2026.03.10

    Kotlin Android模块化架构与组件化开发实践
    Kotlin Android模块化架构与组件化开发实践

    本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

    99

    2026.03.09

    JavaScript浏览器渲染机制与前端性能优化实践
    JavaScript浏览器渲染机制与前端性能优化实践

    本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

    105

    2026.03.06

    Rust内存安全机制与所有权模型深度实践
    Rust内存安全机制与所有权模型深度实践

    本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

    230

    2026.03.05

    PHP高性能API设计与Laravel服务架构实践
    PHP高性能API设计与Laravel服务架构实践

    本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

    619

    2026.03.04

    AI安装教程大全
    AI安装教程大全

    2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

    173

    2026.03.04

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号