设为首页 加入收藏

TOP

Android简易时钟(animation的使用)
2014-11-24 13:27:24 来源: 作者: 【 】 浏览:1
Tags:Android 简易 时钟 animation 使用

好了,不费话了,下面就本次实验遇到的问题总结一下~对初学者来说应当是很有帮助的~估计会遇到和我同样的问题~(大牛就不要费时间嘲笑我了。。)本人实在是查了很多很多的网上的资料唉。。大部分都雷同,没有细说,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" >

android:fromDegrees="0"
android:toDegrees="+360"
android:duration="60000"
android:pivotX="68%" //一点点调的好纠结。。。
android:pivotY="63%"
android:repeatCount="-1"/> //这个是设置为无限循环 (当然xml的注释不是这样滴~)


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


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


然后再Start就好了~


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



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Eclipse IDE中Android项目打红叉.. 下一篇Android2.3.4在OK6410上的移植

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: