今天主要学习了一下动画的有关知识。参考书的内容特别有限,感觉讲的太过浅显,一共就两三页的样子,代码就占了大部分。。导致中间遇到了许多纠结的问题。。不过可能是对游戏开发知识的欠缺(因为每次都是用什么就学什么的。。木有系统的看过参考书唉。。只能自作自受了。。),导致有的地方不明白,耽误了挺多时间,真的学会之后发现加个动画还是很简单的嘛~以后做android应用应当用点心,除了功能之外,加上PS和动画的使用,获得更好的用户体验,是每一个女程序员的职责呼呼O(∩_∩)O~再次强调。。没审美。。真可怕。。

好了,不费话了,下面就本次实验遇到的问题总结一下~对初学者来说应当是很有帮助的~估计会遇到和我同样的问题~(大牛就不要费时间嘲笑我了。。)本人实在是查了很多很多的网上的资料唉。。大部分都雷同,没有细说,bug总是凭借想象力试着de出来的。。那就言归正传咯~

PS:我是用的xml文档添加动画的方式~个人比较喜欢这种分离的方式~感觉比较清晰~算是低耦合的体现。。。吧。。。(软概木有好好学。。)

1、加载动画的时候用到了这个函数AnimationUtils.loadAnimation(this, R.anim.second);  其中的R.anim怎么也找不到。。后来发现我是习惯性的把动画的xml文档建在了Layout文件夹下。。应该再res下新建一个anim,把动画的xml配置文件放在这里就好啦~

顺便附上java代码中实现动画的关键代码吧~

second = (ImageView) findViewById(R.id.second);
secondAnimation = AnimationUtils.loadAnimation(this, R.anim.second);
second.startAnimation(secondAnimation);

2、众所周知,时针分针秒针都有重合的可能,刚开始我想初始化为12点,但是在布局文件里怎么调都不行,无法覆盖。之后想到了图层,找相关资料的时候看到了布局嵌套的代码,这个我还是第一次知道,发现使用布局嵌套就能够重合了。。以后布局的使用要更加灵活些了~我用的是相对布局中嵌套相对布局。

3、好不容易秒针可以动了,却是贱扭扭的飘走了。。汗啊。。真是让我哭笑不得。。肯定要用pivotX和pivotY来确定中心点,但是对于这个属性的解释(动画相对于物件的X、Y坐标的开始位)我着实没有看懂。。并且各种资料说的都一样的。。于是乎~本人决定采用找规律的办法来观察。。早知道早找规律了,其实就是个旋转中心点的坐标表示,最左上角是0%,关键这里所说的控件就是整个屏幕了,至少我这次的程序是这样。。刚开始我理解的是相对于秒针来说的位置,设X为0%,Y为100%,会出现非常诡异的飘走现象。。

附上代码吧~

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="+360"
android:duration="60000"
android:pivotX="68%"                  //一点点调的好纠结。。。
android:pivotY="63%"
android:repeatCount="-1"/>       //这个是设置为无限循环 (当然xml的注释不是这样滴~)
</set>

4、匀速旋转问题是个搞笑的问题。。因为没有试过的孩子肯定不会把它称之为问题。。安卓美名其曰的说默认的就是匀速的。。殊不知。。他实在是太智能了。。指针明明是先加速又减速的旋转的,中间估计是匀速,但是到了一圈之后会感觉有小的停顿,查了资料发现也有人有同样的问题。。据说是不能直接修改xml文档的,因为interpolator中的加速器自然也没有匀速的,所以要在java代码中加入这样的几句:

LinearInterpolator lir = new LinearInterpolator();
secondAnimation.setInterpolator(lir);

然后再Start就好了~

总的来说,时钟还是比较简单的,时针分针秒针的思路都差不多,就是改改duration的时间,还有pivotX,Y的值,这个值不知道有什么好办法,估计是凭经验吧,我一点点的试的,废了好多时间唉。。感觉最近的编程总是体力活啊。。。最后上张图吧~这次PS没怎么费工夫,关键网速太慢了,弄的自己好没心情。。看教程都看不成。。整个表盘加上文字是背景图片,是从一个真实的表上P的,用了仿制印章,也是一点点弄的。。唉。。什么都是精细活啊。。估计还是自己太水了。。才只能用笨笨的办法一点点的调。。。所以这次界面就好粗糙了。。PS还是应该加强啊~

android简易时钟(animation的使用)相关推荐

  1. Android 开发第七弹:简易时钟(秒表)

    本文承接,Android 开发第五弹:简易时钟(闹钟) 和 Android 开发第六弹:简易时钟(计时器),这一部分是关于秒表的. 布局 同样是新建一个类(StopWatchView)并扩展自Line ...

  2. java中有ClockPane类吗,JavaFX实现简易时钟效果(二)

    本文实例为大家分享了JavaFX实现简易时钟效果的具体代码,供大家参考,具体内容如下 在前一篇博客中,我们已经绘制了一个静止时钟. 首先进行一个微调:让表盘根据窗口大小自动调整大小: 在 ShowCl ...

  3. java 简易的闹钟设计_JavaFX实现简易时钟效果

    本文实例为大家分享了JavaFX实现简易时钟效果的具体代码,供大家参考,具体内容如下 首先要在面板中显示一个时钟,我们可以设计一个ClockPane类来显示一个时钟. 最终效果: 若要绘制一个时钟,需 ...

  4. android天气搜索框,Android简易天气App

    原标题:Android简易天气App 前言 本打算是写一个贝塞尔曲线的demo,想了一下哪种场景可以直观的表现出贝塞尔曲线,想到天气预报中的那些24小时和未来几日天气变化正好适用.接着开始构思,开始是 ...

  5. 前端demo——CSS3制作简易时钟

    CSS3制作简易时钟 创建整个时钟的容器 在容器内分别创建时针.分针.秒针 考虑:由于旋转时,默认旋转基点在中间,所以把时针.分针.秒针分别放在一个外层容器中,并对它们的外层容器设置动画效果. htm ...

  6. Android简易音乐重构MVVM Java版-新增歌曲播放界面+状态栏黑科技(十七)

    Android简易音乐重构MVVM Java版-新增歌曲播放界面(十七) 关于 效果 新增歌曲播放界面 增加歌词view `LyricView` 修改ApiService 添加引用 添加SongPla ...

  7. 【Android 基础】Animation 动画介绍和实现

    转载自:http://www.cnblogs.com/yc-755909659/p/4290114.html 1.Animation 动画类型 Android的animation由四种类型组成: XM ...

  8. C#自定义控件四简易时钟

    C#自定义控件四简易时钟 效果图: 简易时钟,顾名思义,简单容易,简单到什么程度呢?界面只有数字和指针,甚至连与当前时间都不能匹配!呵呵!就这么简单,学习嘛,从简单开始. 毫无疑问,这里肯定要用到Ti ...

  9. android中设置Animation 动画效果

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

最新文章

  1. Nginx 在centos linux 安装、部署完整步骤并测试通过
  2. mysql怎么测试事物_mysql事务简单测试
  3. 学会数据库读写分离、分表分库
  4. C语言调用python代码
  5. java stringbuffer长度限制_Java中的String、StringBuffer和StringBuilder
  6. 【机器学习】深度学习开发环境搭建
  7. Increasing the OpLog Size in MongoDB(don't need full resync)
  8. 终端用sublime打开文件的方法
  9. 写软件的需求分析全方位攻略
  10. java-练习2:MobilePhone
  11. 键盘皇者 RealForce 104Pro独家评测
  12. “熊猫烧香”源码启示录
  13. 五分钟搞定单片机keil5 运行破解安装教程
  14. python opencv导入pbtxt文件出现错误Failed to parse GraphDef file
  15. 痛心,京东程序员删库跑路获刑!
  16. 全国首个兆瓦级地铁光伏项目投产
  17. 用VC++6.0制作简易浏览器(转)
  18. 如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?
  19. win12服务器文件设置只读,高手亲自讲解win10文件夹只读属性改不了的修复办法...
  20. ESP32C3 开发板 Download Mode 模式

热门文章

  1. ***股票自动交易软件AutoStock使用说明***
  2. Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)
  3. java华为面试题_华为java面试题整理,2020年华为java面经
  4. 东北师大计算机应用基础考试,东北师范大学2016年秋季《计算机应用基础(高起专)》期末考核...
  5. Android 之 QQ分享
  6. 在React中使用FontAwesome字体
  7. 2022年起重机械指挥考试模拟100题及在线模拟考试
  8. linux(ubuntu)上运行网易popo
  9. amd860k能装黑苹果吗_给大家整理了一下支持黑苹果的AMD处理器
  10. scala yield的使用方法