View动画 View Animator——翻译自developer.android.com
2016-06-28 14:25
411 查看
你可以使用view动画来实现view间的间补动画。间补动画使用起始点,结束点,大小,旋转以及其他的其他的动画的典型的参数来计算动画。一个间补动画可以运行一系列的简单的变形在view对象的内容上,比如位置,大小,旋转和透明度。所以,胶乳你有一个textView的对象,你可以移动,旋转,放大和缩小。如果他有一个背景图片,那么背景图片也会随着改变。animation package 提供了在间补动画中用到的所有的类。
一系列的动画指令定义了间补动画,使用xml文件或者代码都可以进行定义。推荐使用xml文件来定义布局因为其拥有可读性,可重用性,和可交换性,相比直接代码而言。在下面的例子里面,我们使用xml。(了解更多关于怎样使用代码而不是xml定义动画的内容,可以参见 AnimationSet类 和其他的Animation的子类)
动画制定定义了你想要发生的变形,什么时候发生,以及要经过多久才能应用。变形过程可以序列化发生也可以同时发生,比如你让一个按钮从屏幕的左边移动到右边,然后再旋转180度,也可以一边移动一边旋转180度。每一个变形都有一系列的参数来指定变换,比如对于尺寸变换的起始尺寸和结束尺寸,以及对于旋转变换的开始角度和结束角度,另外还有一些典型的参数,比如说喀什的事件和持续的时间。如果想要动画同时发生,就给他们相同的起始时间。如果想让他们序列化发生,就计算前一个事件的起始事件加上持续的时间。
动画的xml文件在工程的res/anim/目录下。这个文件必须有唯一的跟元素,可以是唯一的<alpha>,<scal>,<translate>,<rotate>,插值元素,或者<set>元素,其中包含了元素的集合,当然其中仍然可以有<set>。默认情况下,动画制定都会以同步的方式被应用。想要他们序列化执行,就需要指定其中的startOffset属性,如同下面的例子中展示的那样。
西面的一个ApiEmos中的代码使用了xml文件,同时执行了拉伸和旋转。
屏幕的原点是在(0,0),在左上角,并且向下和右方向增长。
一些值,比如说pivotX,可以被指定为现对于对象自己或者相对于他们的父控件。确保你使用了你想要的形式(50表示相对于父控件的50%,或者用50%表示相对于自己的50%)。
你可以通过赋予Interpolator来制定动画是如何被应用的。android包含一系列的interplator的子类,可以制定多种的速度曲线,例如AccelerateInterpolator让一个变形开始的时候很慢并开始加速。每一个都有一个可以应用在xml中的属性。
在工程目录下的res/anim/目录下,使用了一个hyperspace_jump.xml的xml文件,可以使用下面的代码应用高一个ImageView对象当中。
一种启动动画的方式startAnimation(),你可以先定义一个animation的起始时间,使用Animation.setStartTime(),接着使用View.setAnimation()来设定动画。
更多关于xml语法,标签和属性的信息请查看AnimationResourses。
提示:
无论你的动画怎样的运动和变形,容纳你的view的边界都不会自动去适配它。尽管这样,动画会在边界外边被绘制,而且不会被剪切。但是当动画超出父控件的边界的时候就会被剪切了。
一系列的动画指令定义了间补动画,使用xml文件或者代码都可以进行定义。推荐使用xml文件来定义布局因为其拥有可读性,可重用性,和可交换性,相比直接代码而言。在下面的例子里面,我们使用xml。(了解更多关于怎样使用代码而不是xml定义动画的内容,可以参见 AnimationSet类 和其他的Animation的子类)
动画制定定义了你想要发生的变形,什么时候发生,以及要经过多久才能应用。变形过程可以序列化发生也可以同时发生,比如你让一个按钮从屏幕的左边移动到右边,然后再旋转180度,也可以一边移动一边旋转180度。每一个变形都有一系列的参数来指定变换,比如对于尺寸变换的起始尺寸和结束尺寸,以及对于旋转变换的开始角度和结束角度,另外还有一些典型的参数,比如说喀什的事件和持续的时间。如果想要动画同时发生,就给他们相同的起始时间。如果想让他们序列化发生,就计算前一个事件的起始事件加上持续的时间。
动画的xml文件在工程的res/anim/目录下。这个文件必须有唯一的跟元素,可以是唯一的<alpha>,<scal>,<translate>,<rotate>,插值元素,或者<set>元素,其中包含了元素的集合,当然其中仍然可以有<set>。默认情况下,动画制定都会以同步的方式被应用。想要他们序列化执行,就需要指定其中的startOffset属性,如同下面的例子中展示的那样。
西面的一个ApiEmos中的代码使用了xml文件,同时执行了拉伸和旋转。
<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/decelerate_interpolator"> <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包含一系列的interplator的子类,可以制定多种的速度曲线,例如AccelerateInterpolator让一个变形开始的时候很慢并开始加速。每一个都有一个可以应用在xml中的属性。
在工程目录下的res/anim/目录下,使用了一个hyperspace_jump.xml的xml文件,可以使用下面的代码应用高一个ImageView对象当中。
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage); Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); spaceshipImage.startAnimation(hyperspaceJumpAnimation);
一种启动动画的方式startAnimation(),你可以先定义一个animation的起始时间,使用Animation.setStartTime(),接着使用View.setAnimation()来设定动画。
更多关于xml语法,标签和属性的信息请查看AnimationResourses。
提示:
无论你的动画怎样的运动和变形,容纳你的view的边界都不会自动去适配它。尽管这样,动画会在边界外边被绘制,而且不会被剪切。但是当动画超出父控件的边界的时候就会被剪切了。
相关文章推荐
- android-android.hardware.Camera
- Android之数据统计TalkingData集成
- Android 6.0 运行时权限处理
- Android实训案例(七)——四大组件之一Service初步了解,实现通话录音功能,抽调接口
- win7解决android studio真机运行找不到设备的问题
- Android IntentService完全解析 当Service遇到Handler
- 如何在Android应用中加入渠道信息
- 图解 Android 事件分发机制
- Android Studio设置鼠标悬停显示文档提示
- android-Camera.Face
- android-Camera.CameraInfo
- 最牛逼android上的图表库MpChart(二) 折线图
- 最牛逼android上的图表库MpChart(二) 折线图
- Android学习笔记(闪屏淡入渐变效果)
- android button 字母自动大写
- android-Camera.Area
- android 设置新手引导
- Android_library导出aar
- Scrollview子View为LinearLayout不够一屏留白情况
- Android inputType ,软键盘输入类型