📜  Kotlin的Android动画

📅  最后修改于: 2021-05-09 18:09:01             🧑  作者: Mango

动画是一种方法,其中以独特的方式组合图像集并进行处理,然后将它们显示为运动图像。建立动画使屏幕上的对象看起来还活着。 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。

    建立新专案

    1. 开启Android Studio
    2. 转到文件=>新建=>新建项目。
    3. 然后,选择清空活动,然后单击下一步
      • 将应用程序名称写为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

      想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
      单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!