Android编程权威指南第三版 第32章
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_35564145/article/details/90005345
1.首先,让日落可逆。也就是说,点击屏幕,等太阳落下后,再次点击屏幕,让太阳升起来。 动画集不能逆向执行,因此,你需要新建一个AnimatorSet。
2.第二个挑战是添加太阳动画特效,让它有规律地放大、缩小或是加一圈旋转的光线。(这实际是反复执行一段动画特效,可考虑使用ObjectAnimator的setRepeatCount(int)方法。) 另外,海面上要是有太阳的倒影就更真实了。
3.最后,再来看个颇具挑战的练习。在日落过程中实现动画反转。在太阳慢慢下落时点击屏幕, 让太阳无缝回升至原来所在的位置。或者,在太阳落下进入夜晚时点击屏幕,让太阳重新升回天 空,就像日出。
一、日落可逆
这部分比较简单,根据提示新建新的动画和动画集就可以,直接上代码
1 |
//上升动画 |
二、太阳动画特效
这部分主要涉及缩放动画、旋转动画,提示使用ObjectAnimator的setRepeatCount(int)方法,但是我并未使用,我的代码如下
1 |
//变大 |
旋转动画特别说明:通过旋转sun来实现旋转的光线的效果,所以修改sun.xml给sun加上边框间断线
1 |
<?xml version="1.0" encoding="utf-8"?> |
以上动画直接.with()加到动画集即可。
One more thing:
为了让太阳更真实,添加倒影效果
①在布局文件中,再添加一个FrameLayout,记得android:layout_weight调成0.5,这样sky和sea各一半。
1 |
<?xml version="1.0" encoding="utf-8"?> |
②倒影需要有位移动画、缩放动画、旋转动画、渐变透明动画。代码如下
1 |
//--------------------------------倒影--------------------------------// |
分别定义太阳下降、太阳上升、倒影下降、倒影上升动画集,再合并为上升、下降总动画集
1 |
//太阳下降动画集 |
三、日落动画反转
目前暂时还没做。
推荐文章
关于Android动画用法,推荐这篇https://blog.csdn.net/qq_40881680/article/details/82378391,写得很好,在我学动画部分的时候,对我帮助很大。
Android编程权威指南第三版 第32章的更多相关文章
- Android编程权威指南(第三版)- 2.8 挑战练习:添加后退按钮
package com.example.geoquiz; import android.support.v7.app.AppCompatActivity; import android.os.Bund ...
- 使用最新AndroidStudio编写Android编程权威指南(第3版)中的代码会遇到的一些问题
Android编程权威指南(第3版)这本书是基于Android7.0的,到如今已经过于古老,最新的Android版本已经到10,而这本书的第四版目前还没有正式发售,在最近阅读这本书时,我发现这本书的部 ...
- Android编程权威指南(第2版)--第16章 使用intent拍照 挑战练习
16.7挑战练习:优化照片显示 新建dialog_photo.xml 1234567891011121314 <?xml version="1.0" encoding=&qu ...
- 读《Android编程权威指南》
因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...
- 《Android编程权威指南》
<Android编程权威指南> 基本信息 原书名:Android programming: the big nerd ranch guide 原出版社: Big Nerd Ranch Gu ...
- 《Android编程权威指南》CriminalIntent项目梳理
相信很多新手或者初级开发人员都已经买了第2版的<Android编程权威指南>, 这本书基于Android Studio开发,对入门人员来说是很好的选择,但是很可惜的是, 在完成一个项目后, ...
- 《Android编程权威指南》PhotoGallery应用梳理
PhotoGalley是<Android编程权威指南>书中另外一个重要的应用.
- Swift编程权威指南第2版 读后收获
自从参加工作一直在用OC做iOS开发.在2015年的时候苹果刚推出swift1.0不久,当时毕竟是新推出的语言,大家也都很有激情的学习.不过在学完后发现很难在实际项目中使用,再加上当时公司项目都是基于 ...
- Android编程权威指南笔记2:解决R文件爆红问题和SDK概念
在android studio中会遇到R文件的丢失,所以遇见这问题怎么解决呢? 重新检查资源文件中xml文件 最近一次编译时如果未生成R.java文件,项目中资源引用的地方都会出错.通常,这是某个xm ...
随机推荐
- GetCharWidth32
#include <windows.h> #include<stdio.h> // 窗口函数的函数原形 LRESULT CALLBACK MainWndProc(HWND, U ...
- Vue 项目中应用
Vue使用 一.vue生命周期 # main.js import Vue from 'vue' import App from './App.vue' import router from './ro ...
- Python笔记_第一篇_面向过程第一部分_6.循环控制语句(while 和 for)_
承接条件控制语句.条件控制语句像大树一样有很多的之差,那条路径通(也就是表达式判断为True)就会往哪一个树杈去运行,万涓溪水汇成大河.对于常用的程序结构形式,还有一种这篇文章就会讲解,那就是循环控制 ...
- a标签的一些特殊使用
<a href="tel:10086">10086</a> //点击后直接拨打10086 <a href="mailto:c1586@qq ...
- 黑马eesy_15 Vue:04.综合案例(前端Vue实现)
黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...
- 元组(tuple)的用途(基础)
>>>a = 123,456,'jia',['jia','xiang'] >>>a (123, 456, 'jia', ['jia', 'xiang']) 这个带括 ...
- ubuntu 深度学习cuda环境搭建,docker-nvidia 2019-02
ubuntu 深度学习cuda环境搭建 ubuntu系统版本 18.04 查看GPU型号(NVS 315 性能很差,比没有强) 首先最好有ssh服务,以下操作都是远程ssh执行 lspci | gre ...
- [转]Apache漏洞利用与安全加固实例分析
1.2 Apache文件解析特性 Apache对于文件名的解析是从后往前解析的,直到遇见一个它认识的文件类型为止.因此,如果web目录下存在以类似webshell.php.test这样格式命名的文件, ...
- Codeforces 1288A - Deadline
题目大意: Adilbek有一个特殊项目,他需要运行这个项目得到结果. 但是这个项目直接运行需要消耗d天时间. 他也可以选择优化程序以减少程序运行消耗时间. 假设他用了x天优化程序,那么最后运行程序只 ...
- VS2015提示资源视图加载失败
关闭VS打开的resource,h这个文件,然后重启VS就行了.网上有很多其他的说法,我本地尝试始终不行,暴力解决. 今天发现,其实是不用重启的,直接对rc文件右键保存,就可以正常打开了......