fromDegress为0,则从view本来的位置绕着旋转点,旋转toDegress度,若fromDegress为90,
toDegress为180,则view瞬间跳转到以旋转90度的位置,然后再顺时针旋转90度。
1.RotateAnimation(float fromDegrees, float toDegrees)
默认的旋转点为view的左上角
X轴顺时针转动到fromDegrees为旋转的起始点,
X轴顺时针转动到toDegrees为旋转的起始点。
如fromDegrees=0,toDegrees=90;为左上角顶点为旋转点。0度为起始点,90度为终点。进行旋转,旋转了90度
如fromDegrees=60,toDegrees=90;为左上角顶点为旋转点。60度为起始点,90度为终点。进行旋转,旋转了90-60=30度
2.RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY)
(pivotX,pivotY)为旋转点。pivotX为距离左侧的偏移量,pivotY为距离顶部的偏移量。即为相对于View左上角(0,0)的坐标点,而不是相对于整个屏幕的左上角。
如View width=100px,height=100px
RotateAnimation(0,10,100,100);则以右下角顶点为旋转点,从原始位置顺时针旋转10度
RotateAnimation(0,90,50,50);则以View的中心点为旋转点,旋转90度
3.RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue,
int pivotYType, float pivotYValue)
pivotXType, pivotXValue, pivotYType, pivotYValue 旋转点类型及其值。
Animation.ABSOLUTE为绝对值 其他为百分比。这个和平移动画的一样,不了解可以去那看
如RotateAnimation(0, 90, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f); 按中心点旋转90度
效果和2例中的RotateAnimation(0,90,50,50);则以View的中心点为旋转点,旋转90度 。效果一样
RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);
上面的rotate是相对于view自身来说的,所以旋转点事view的中心,下面的是相对于Parent来说的,但是起始点是view的左上角,也就是说并不是在整个parent的中心,而是在view的左上角到parent的右边界的中线和view的左上角到parent的下边界的中线的交点。
new RotateAnimation(0, 180, centerX,centerY);
第一个参数表示动画的起始角度,第二个参数表示动画的结束角度,第三个表示动画的旋转中心x轴,第四个表示动画旋转中心y轴。
rotateAnimation.setDuration(1000 * 20);
表动画持续20s。
rotateAnimation.setFillAfter(true);
ture表示动画结束后停留在动画的最后位置,false表示动画结束后回到初始位置,默认为false。
setFillBefore(boolean fillBefore)
true标示动画执行后,空间将回到动画执行之前的状态
mView.startAnimation(rotateAnimation);
表示在mView中启动动画。
setStartOffSet(long startOffSet)
设置动画执行之前的时间
setRepeatCount(int repeatCount)
设置动画重复执行的次数
相关推荐
这篇博客《Animation动画详解(九)——联合动画的代码实现》深入探讨了如何在Android平台上创建和组合多种动画效果,以达到更为丰富的动态展示。对应的源码提供了实践这些概念的实例,这对于开发者来说是一个宝贵的...
本文将深入探讨“Animation动画详解”,包括透明度、位移、TweenAnimation、大小变化、补间动画和旋转等多个关键知识点。 首先,我们来了解一下透明度动画。在编程中,通常使用Alpha或Opacity属性来控制对象的透明...
Android提供了多种动画类型,其中包括AlphaAnimation(透明度动画)、ScaleAnimation(缩放动画)、TranslateAnimation(位移动画)以及我们今天要详细讲解的RotateAnimation(旋转动画)。 RotateAnimation允许你...
在Android开发中,动画是提升用户体验的...以上就是关于`Android 动画之RotateAnimation`的知识点详解。通过理解`RotateAnimation`的工作原理和使用方法,开发者可以更好地创建出丰富的视觉效果,提升应用的交互体验。
2. 根据需求,创建对应的Animation对象,如AlphaAnimation、TranslateAnimation、ScaleAnimation或RotateAnimation。 3. 配置Animation对象的属性,例如持续时间、起始和结束值等。 4. 将配置好的Animation对象添加...
本文实例讲述了Android编程实现RotateAnimation设置中心点旋转动画效果。分享给大家供大家参考,具体如下: 在xml设置: <?xml version=1.0 encoding=utf-8?> <rotate xmlns:android=...
本文将深入探讨Android的渐变动画(Tween Animation),这是Android提供的一种基本动画类型,用于创建平移、旋转、缩放和渐变效果。通过使用Tween Animation,开发者可以为应用程序的UI元素添加动态效果,使交互更加...
RotateAnimation animation = new RotateAnimation(fromDegrees, toDegrees, pivotX, pivotY); animation.setDuration(10000); view.startAnimation(animation); ``` Android 动画模式有两种:tweened animation...
RotateAnimation ra = new RotateAnimation(0, 60, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(2000); view.startAnimation(ra); ``` **参数说明**: - `new ...
《动画技术详解——以AnimationSample为例》 在计算机图形学领域,动画技术是不可或缺的一部分,它赋予了静态图像生命,让数字世界充满活力。本文将以一个名为"AnimationSample"的项目为例,深入探讨动画在实际应用...
Java中定义的动画类包括AlphaAnimation(透明度动画)、ScaleAnimation(缩放动画)、TranslateAnimation(平移动画)和RotateAnimation(旋转动画)。这些Java类可以直接操作视图属性,实现动画效果。 在Android...
**Android 动画详解:深入理解View Animation** 在Android开发中,动画是提升用户体验的关键因素之一,能够使应用更加生动和吸引人。本篇将详细探讨Android中的View Animation,它是Android早期提供的动画机制,...
Tweened Animation 包括四种基本类型:AlphaAnimation(透明度渐变)、ScaleAnimation(尺寸缩放)、TranslateAnimation(位置平移)和RotateAnimation(旋转)。这些动画可以在XML文件中预先定义,也可以通过Java...
Android中的`Animation`类是补间动画的基础,包括`TranslateAnimation`(平移)、`RotateAnimation`(旋转)、`ScaleAnimation`(缩放)和`AlphaAnimation`(透明度变化)。 3. **属性动画(Property Animation)**...
本文将深入探讨Android的基础Animation动画,包括动画类型、动画模式、如何在XML文件中定义动画以及具体的动画效果解析。 1. Animation动画类型: Android的animation系统主要包括四种基本类型,它们可以分为两类...
RotateAnimation rotateAnim = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnim.setDuration(2000); view.startAnimation(rotateAnim); ``` 在实际...