📅  最后修改于: 2023-12-03 14:39:09.918000             🧑  作者: Mango
在Android应用开发中,动画是一种非常强大的技术工具,可以为应用添加生动和吸引人的视觉效果。本文将介绍一些常见的Android动画示例,帮助程序员更好地了解和使用Android动画。
在开始之前,让我们先了解一些基本概念:
现在让我们来看一些具体的例子。
下面的代码演示了如何使用 View 动画实现一个平移动画效果:
val translateAnimation = TranslateAnimation(0f, 200f, 0f, 0f)
translateAnimation.duration = 1000
translateAnimation.interpolator = AccelerateDecelerateInterpolator()
view.startAnimation(translateAnimation)
下面的代码演示了如何使用 View 动画实现一个旋转动画效果:
val rotateAnimation = RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f)
rotateAnimation.duration = 1000
rotateAnimation.interpolator = LinearInterpolator()
view.startAnimation(rotateAnimation)
下面的代码演示了如何使用 View 动画实现一个缩放动画效果:
val scaleAnimation = ScaleAnimation(1f, 0.5f, 1f, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f)
scaleAnimation.duration = 1000
scaleAnimation.interpolator = DecelerateInterpolator()
view.startAnimation(scaleAnimation)
下面的代码演示了如何使用 View 动画实现一个透明度动画效果:
val alphaAnimation = AlphaAnimation(1f, 0.5f)
alphaAnimation.duration = 1000
alphaAnimation.interpolator = AccelerateInterpolator()
view.startAnimation(alphaAnimation)
下面的代码演示了如何使用属性动画实现一个平移动画效果:
val translationX = PropertyValuesHolder.ofFloat(View.TRANSLATION_X, 200f)
val translationY = PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, 200f)
ObjectAnimator.ofPropertyValuesHolder(view, translationX, translationY).apply {
duration = 1000
interpolator = AccelerateDecelerateInterpolator()
}.start()
下面的代码演示了如何使用属性动画实现一个旋转动画效果:
ObjectAnimator.ofFloat(view, View.ROTATION, 0f, 360f).apply {
duration = 1000
interpolator = LinearInterpolator()
repeatCount = ValueAnimator.INFINITE
}.start()
下面的代码演示了如何使用属性动画实现一个缩放动画效果:
val scaleX = PropertyValuesHolder.ofFloat(View.SCALE_X, 1f, 0.5f)
val scaleY = PropertyValuesHolder.ofFloat(View.SCALE_Y, 1f, 0.5f)
ObjectAnimator.ofPropertyValuesHolder(view, scaleX, scaleY).apply {
duration = 1000
interpolator = DecelerateInterpolator()
}.start()
下面的代码演示了如何使用属性动画实现一个透明度动画效果:
ObjectAnimator.ofFloat(view, View.ALPHA, 1f, 0.5f).apply {
duration = 1000
interpolator = AccelerateInterpolator()
}.start()
下面的代码演示了如何使用帧动画实现一个连续播放的动画效果:
res/drawable
目录下创建一个帧动画文件 animation_list.xml
:<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/frame_1" android:duration="100" />
<item android:drawable="@drawable/frame_2" android:duration="100" />
<item android:drawable="@drawable/frame_3" android:duration="100" />
<!-- 添加更多的帧图像 -->
</animation-list>
val animationDrawable = view.background as AnimationDrawable
animationDrawable.isOneShot = false
animationDrawable.start()
本文介绍了 Android 动画的基本概念,并提供了一些常见的 View 动画、属性动画和帧动画示例。希望这些示例能够帮助程序员更好地理解和使用 Android 动画技术。