美文网首页
视图动画

视图动画

作者: f6a40ba32131 | 来源:发表于2016-12-30 14:39 被阅读14次

您可以使用视图动画系统在视图上执行补间动画。 Tween动画使用诸如起点,终点,大小,旋转和动画的其他常见方面的信息计算动画。

补间动画可以对View对象的内容执行一系列简单的变换(位置,大小,旋转和透明度)。 所以,如果你有一个TextView对象,你可以移动,旋转,增长或缩小文本。 如果它有一个背景图像,背景图像将与文本一起变换。 该animation package提供了补间动画中使用的所有类。

动画指令序列定义由XML或Android代码定义的补间动画。 与定义布局一样,推荐使用XML文件,因为它比硬编码动画更易读,可重复使用和可交换。 在下面的示例中,我们使用XML。 (要了解更多关于在应用程序代码中定义的,而不是XML的动画,指AnimationSet类和其他Animation子类)。

动画指令定义要发生的转换,发生的时间以及应用时间。 转换可以是顺序或同时的 - 例如,您可以让TextView的内容从左到右移动,然后旋转180度,或者让文本同时移动和旋转。 每个变换都采用一组特定于该变换的参数(尺寸变化的开始尺寸和结束尺寸,旋转的起始角度和结束角度等),以及一组通用参数(例如开始时间和持续时间) 。 要使几个转换同时发生,给他们相同的开始时间; 以使它们顺序,计算开始时间加上先前变换的持续时间。

动画XML文件所属的res/anim/你的Android项目的目录中。 该文件必须有一个根元素:这将是单个<alpha><scale><translate><rotate> ,插元素或<set>元素来装这些元素组(其中可能包括另一<set> )。 默认情况下,所有动画指令都同时应用。 以使它们按顺序发生,必须指定startOffset属性,如下面的例子中

以下来自ApiDemos之一的XML用于拉伸,然后同时旋转和旋转一个View对象。

<set android:shareInterpolator =“false”>
     <scale
         android:interpolator =“@ android:anim / accelerate_decelerate_interpolator”
         android:fromXScale =“1.0”
         android:toXScale =“1.4”
         android:fromYScale =“1.0”
         android:toYScale =“0.6”
         android:pivotX =“50%”
         android:pivotY =“50%”
         android:fillAfter =“false”
         android:duration =“700”/>
     <set android:interpolator =“@ android:anim / decelerationateinterpolator”>
         <scale
            android:fromXScale =“1.4”
            android:toXScale =“0.0”
            android:fromYScale =“0.6”
            android:toYScale =“0.0”
            android:pivotX =“50%”
            android:pivotY =“50%”
            android:startOffset =“700”
            android:duration =“400”
            android:fillBefore =“false”/>
         <rotate
            android:fromDegrees =“0”
            android:toDegrees =“ -  45”
            android:toYScale =“0.0”
            android:pivotX =“50%”
            android:pivotY =“50%”
            android:startOffset =“700”
            android:duration =“400”/>
     </ set>
 </ set>

屏幕坐标(本示例中不使用)在左上角为(0,0),并且随着向下和向右移动而增加。

某些值(如pivotX)可以相对于对象本身或相对于父对象指定。 确保使用正确的格式(“50”表示相对于父表的50%,或“50%”表示相对于其自身的50%)。

你可以决定如何转换通过分配一个随时间施加Interpolator。 Android包括指定不同的速度曲线插补几个子类:例如, AccelerateInterpolator讲述了一个转变,开始缓慢加速。 每个都有一个可以在XML中应用的属性值。

有了这个XML保存为hyperspace_jump.xmlres/anim/项目的目录,下面的代码将引用它,并把它应用到一个ImageView从布局对象。

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);

作为一种替代startAnimation()您可以定义一个开始时间与动画Animation.setStartTime()然后将动画分配到与View View.setAnimation()

有关XML语法的详细信息,可标记和属性,看动画资源

注意:无论怎样你的动画可以移动或调整,保存你的动画不会自动调整以适应它的视图的边界。 即使如此,动画仍将被绘制超出其视图的边界,不会被剪裁。 然而,如果动画超过父视图的边界将发生削波。

相关文章

  • android基础-视图动画(Animation)

    知识点 视图动画的类型 视图动画的特点 视图动画的实现方式 一、视图动画的类型 视图动画主要分四类:透明度,旋转,...

  • Android视图动画集合AndoridViewAnimatio

    Android视图动画集合AndoridViewAnimations Android视图动画是针对视图对象的动画效...

  • Android 动画 | 艺术探索笔记

    Android 动画分为两大类 视图动画 属性动画 视图动画(View animation) 视图动画分为 补间动...

  • 属性动画与视图动画

    1.视图动画与属性动画: 视图动画:AlphaAnimation,RotateAnimation,Translat...

  • Android动画之视图动画

    分类 Android动画主要包括视图动画和属性动画。视图动画包括Tween动画和Frame动画。Tween动画又包...

  • Android 动画

    View Animation(视图动画) 概述: 视图动画,也叫 Tween (补间)动画可以在一个视图容器内执行...

  • Android 动画

    View Animation(视图动画) 概述: 视图动画,也叫 Tween (补间)动画可以在一个视图容器内执行...

  • iOS 视图动画

    父视图的动画,保持子视图的frame不变;子视图的动画,保持父视图的frame不变。

  • Android动画

    Android动画分类: 视图动画:补间动画、逐帧动画 属性动画 视图动画 补间动画 可以在xml中定义动画,然后...

  • Android 动画

    android动画分为三种 帧动画,视图动画(补间动画),属性动画逐帧动画 视图动画 属性动画 Window和A...

网友评论

      本文标题:视图动画

      本文链接:https://www.haomeiwen.com/subject/mdumvttx.html