android中Animation动画的连续播放与播放完毕后停留在最后的状态
我们做安卓应用的苦逼程序员们常常会需要用到Animation也就是动画。比如做地图功能的时候。我们在手机旋转时需要根据手机重力感应来调整地图的角度,让它上面的“北”一直指向地球的北面。。。
好多人做动画的时候会遇到这么两个难题(我也曾经遇到过):
1:动画执行完了一遍后又立刻恢复到了初始状态,或者动画只能不断循环动作。【问题:我想让动画动到某个位置或转到某个角度后停在那里,该如何做呢?】
2:点击按钮一、动画从0度转到了10度,我再点击按钮二、需要动画从之前的10度位置再继续转到20度。再点击按钮三......【问题:如何让动画连续起来?而不是每次都有从0度开始转到10、再从0度开始转到20度......】
针对上面两个问题我们来看看动画类,这里我拿RotateAnimation(旋转动画,其他动画有类似之处)来讲解:
RotateAnimation(float fromDegrees,float toDegtees,float pivotX,float pivotY);
这里面 :
fromDegrees为旋转动画的起始角度
toDegtees为旋转动画的结束角度
pivotX和pivotY为旋转动画的锚点位置,也就是说我的动画是根据哪个顶点来旋转的。
从参数来看,我们只要在一次动画执行完毕后记录当前动画转到了哪里,再在下次执行动画的时候将这个记录下来的位置传给fromDegrees就会发现你的动画接着上次的位置继续旋转了下去。这样我们就解决了问题2了。
再看看问题1:想让动画执行完毕后固定在动画结束的那一帧上可以设置rotateAnimation.setFillAfter(true);方法。将值传为true就可以了。。。
/**旋转的动画
* @param mView 需要选择的View
* @param startDegress 初始的角度【从这个角度开始】
* @param degrees 当前需要旋转的角度【转到这个角度来】
*/
public void showAnimation(View mView,int startDegress,int degrees)
{
float centerX = mView.getWidth() / 2.0f;
float centerY = mView.getHeight() / 2.0f;
//这个是设置需要旋转的角度(也是初始化),我设置的是当前需要旋转的角度
RotateAnimation rotateAnimation = new RotateAnimation(startDegress,degrees,centerX,centerY);//centerX和centerY是旋转View时候的锚点
//这个是设置动画时间的
rotateAnimation.setDuration(10);
//动画执行完毕后是否停在结束时的角度上
rotateAnimation.setFillAfter(true);
//启动动画
mView.startAnimation(rotateAnimation);
}
From:http://blog.csdn.net/zhtqmima/article/details/12910871
android中Animation动画的连续播放与播放完毕后停留在最后的状态的更多相关文章
- Android中的动画
Android中的动画分为: 1.逐帧动画(Frame Animation): 把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...
- Android中矢量动画
Android中矢量动画 Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线. <path> 标签 支持一下属性 M = (Mx, ...
- Android中的动画具体解释系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...
- Android中的动画详解系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...
- Android笔记(六十三) android中的动画——逐帧动画( frame-by-frame animation)
就好像演电影一样,播放实现准备好的图片,来实现动画效果. 逐帧动画需要用到AnimationDrawable类,该类主要用于创建一个逐帧动画,然后我们把这个动画设置为view的背景即可. androi ...
- Android笔记(六十四) android中的动画——补间动画(tweened animation)
补间动画就是只需要定义动画开始和结束的位置,动画中间的变化由系统去补齐. 补间动画由一下四种方式: 1.AplhaAnimation——透明度动画效果 2.ScaleAnimation ——缩放动画效 ...
- 初识android中的动画
动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对 ...
- Android中的动画机制
1 逐帧动画 逐帧动画 就是一系列的图片按照一定的顺序展示的过程. 逐帧动画很简单, 只需要在drawable中或者anim中定义一个Animation-list 其中包含多个it ...
- Android Property Animation动画
3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三 ...
随机推荐
- Mysql 比较运算符详解
熟悉了最简单的算术运算符,再来看一下比较运算符.当使用SELECT 语句进行查询时,MySQL允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回1,为假则返回0,比较结果不确定则返 ...
- eclipse中maven插件,改变默认仓库位置
一.eclipse中maven默认仓库是当前用户下.m2/repository,需改变默认路径按照下面步骤. 步骤一:安装maven 下载:http://maven.apache.org/ 配置mav ...
- Python操作列表常用方法
Python操作列表的常用方法. 列表常用的方法操作列表以及小例子: 1. Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 &g ...
- yii2 ContentDecorator 和 block 挂件
在做网站的过程中,大部分的页面结构都是相似的.如都有相同的头部和底部.各个页面这样仅仅是中间的部分不同. Yii中的布局文件就是用来实现这样的功能.如: 布局文件:@app/views/layouts ...
- 存储管理器实验——SDRAM
序言:2440有nand和nor两种启动方式,在裸机部分,都是使用的nand启动. 现在,我们想在nand flash启动的时候,通过SRAM访问存储在外设SDRAM中的程序. nand启动,先把前4 ...
- Python操作Word【批量生成文章】
http://www.cnblogs.com/codex/p/4668396.html 需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同 ...
- jquery设置radio选中
<script type="text/javascript"> $(document).ready(function(){ $("input[type=rad ...
- 基于Gitolite的Git服务架设
如果不是要与他人协同开发,git根本不需要架设服务器,git可以直接使用本地版本库的路径完成git版本间的操作.但是如果需要和他人分享版本库,协作开发,就需要能够通过网络协议操作git库.git支持的 ...
- ASP.NET 5 将于2016年一季度公布
简单介绍:微软ASP.NET团队在GitHub宣布ASP.NET 5的公布时间表和发展蓝图. 该团队宣布在2015年还将公布三个Beta版.一个ASP.NET 5的抢先版(RC 1).到2016年一季 ...
- 回车替换Tab 并不会 提交表单 IE Chrome 通过
网上一堆可以回车替换tab的代码,可是基本都忽略谷歌浏览器的兼容性,找了3个小时 试了无数遍,终于总结出这一段代码,希望能帮到需要的同学,也给自己留个备忘 document.onkeyd ...