动画是一种方法,其中以独特的方式组合图像集并进行处理,然后将它们显示为运动图像。建立动画使屏幕上的对象看起来还活着。 Android有很多工具可以帮助您相对轻松地创建动画。因此,在本文中,我们将学习使用Kotlin创建动画。以下是我们在xml中编写代码时使用的一些属性。
属性表:
XML ATTRIBUTES | DESCRIPTION |
---|---|
android:duration | It is used to specify the duration of animation to run |
android:fromAlpha | It is the starting alpha value for the animation, where 1.0 means fully opaque and 0.0 means fully transparent |
android:toAlpha | It is the ending alpha value |
android:id | Sets unique id of the view |
android:fromYDelta | It is the change in Y coordinate to be applied at the start of the animation |
android:toYDelta | It is the change in Y coordinate to be applied at the end of the animation |
android:startOffset | Delay occur when an animation runs (in miliseconds), once start time is reached. |
android:pivotX | It represents the X-axis coordinates to zoom from starting point. |
android:pivotY | It represents the Y-axis coordinates to zoom from starting point. |
android:fromXScale | Starting X size offset, |
android:fromYScale | Starting Y size offset, |
android:toXScale | Ending of X size offset |
android:toYScale | Ending of Y size offset |
android:fromDegrees | Starting angular position, in degrees. |
android:toDegrees | Ending angular position, in degrees. |
android:interpolator | An interpolator defines the rate of change of an animation |
首先,我们将创建一个新的android应用程序。然后,我们将创建一些动画。
如果您已经创建了项目,则忽略步骤1。
建立新专案
- 开启Android Studio
- 转到文件=>新建=>新建项目。
- 然后,选择清空活动,然后单击下一步
- 将应用程序名称写为DynamicEditTextKotlin
- 根据需要选择最低SDK,此处我们选择21作为最低SDK
- 选择语言作为Kotlin,然后单击完成按钮。
如果您正确地遵循了上述过程,那么您将成功获得一个新创建的项目。
创建项目后,我们将修改xml文件。在xml文件中,我们将创建一个执行所有动画的TextView和一个用于八个不同动画的八个按钮。
修改activity_main.xml文件
打开res / layout / activity_main.xml文件并将代码添加到其中。
修改布局后,我们将为动画创建xml文件。因此,我们将首先创建一个文件夹名称anim 。
在此文件夹中,我们将添加将用于生成动画的XML文件。为此,请右键单击应用程序/ res,然后选择“ Android资源目录”并将其命名为动画。
bounce.xml
在此动画中,文本像球一样反弹。
fade_in.xml
在“淡入”动画中,文本将从背景出现。
fade_out.xml
在“淡出”动画中,文本的颜色会淡入特定时间。
rotation.xml
在旋转动画中,文本旋转特定时间。
slide_down.xml
在此动画中,文本将从顶部到底部。
slide_up.xml
在此动画中,文本将从bottam移到顶部。
zoom_in.xml
在此动画中,文本将在特定时间段内显得更大。
zoom_out.xml
在此动画中,文本将在特定时间段内显示为较小。
在xml中创建所有动画之后。我们将创建MainActivity。
创建MainActivity.kt文件
打开app / src / main / Java/net.geeksforgeeks.AnimationsInKotlin/MainActivity.kt文件,并将以下代码添加到其中。
package net.geeksforgeeks.animationsinkotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.view.animation.AnimationUtils
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fade_in.setOnClickListener {
textView.visibility = View.VISIBLE
val animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in)
textView.startAnimation(animationFadeIn)
}
fade_out.setOnClickListener {
val animationFadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out)
textView.startAnimation(animationFadeOut)
Handler().postDelayed({
textView.visibility = View.GONE
}, 1000)
}
zoom_in.setOnClickListener {
val animationZoomIn = AnimationUtils.loadAnimation(this, R.anim.zoom_in)
textView.startAnimation(animationZoomIn)
}
zoom_out.setOnClickListener {
val animationZoomOut = AnimationUtils.loadAnimation(this, R.anim.zoom_out)
textView.startAnimation(animationZoomOut)
}
slide_down.setOnClickListener {
val animationSlideDown = AnimationUtils.loadAnimation(this, R.anim.slide_in)
textView.startAnimation(animationSlideDown)
}
slide_up.setOnClickListener {
val animationSlideUp = AnimationUtils.loadAnimation(this, R.anim.slide_out)
textView.startAnimation(animationSlideUp)
}
bounce.setOnClickListener {
val animationBounce = AnimationUtils.loadAnimation(this, R.anim.bounce)
textView.startAnimation(animationBounce)
}
rotate.setOnClickListener {
val animationRotate = AnimationUtils.loadAnimation(this, R.anim.rotate)
textView.startAnimation(animationRotate)
}
}
}
由于AndroidManifest.xml文件是android应用程序中非常重要的文件,因此清单文件的代码如下。
AndroidManifest.xml文件
Code inside src/main/AndroidManifest.xml file would look like below
作为仿真器运行:
您可以在此处找到完整的代码:https://github.com/missyadavmanisha/AnimationsInKotlin