📜  如何在Android中创建发光效果?

📅  最后修改于: 2021-05-13 16:19:31             🧑  作者: Mango

发光效果用于使ImageView,Button或View具有更好的动画外观。这很容易实现。下面给出了一个示例GIF,以使我们对本文中要做的事情有一个了解。请注意,我们将使用Kotlin语言实施此项目。

 

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言

步骤2:使用activity_main.xml文件

转到activity_main.xml文件,并参考以下代码。以下是activity_main.xml文件的代码。

XML


  
    
  
        
  
            
  
            
  
        
          
        
        
  
    
      


XML


    
  
    


XML


    


XML


    


Kotlin
import android.os.Bundle
import android.view.View
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // Initialize the view
    lateinit var shine: View
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // attach it with the id of view
        // that we will animate
        shine = findViewById(R.id.shine)
        shineAnimation()
    }
  
    private fun shineAnimation() {
        // attach the animation layout Using AnimationUtils.loadAnimation
        val anim = AnimationUtils.loadAnimation(this, R.anim.left_right)
        shine.startAnimation(anim)
        // override three function There will error 
        // line below the object
        // click on it and override three functions
        anim.setAnimationListener(object : Animation.AnimationListener {
            // This function starts the 
            // animation again after it ends
            override fun onAnimationEnd(p0: Animation?) {
                shine.startAnimation(anim)
            }
  
            override fun onAnimationStart(p0: Animation?) {}
  
            override fun onAnimationRepeat(p0: Animation?) {}
  
        })
    }
}


步骤3:在drawable文件夹中创建bg_circular.xml,我们将其用作线性布局的背景

参考 如何在Android Studio中创建可绘制资源XML文件。

XML格式



    
  
    

步骤4:在drawable文件夹中创建bg_shine.xml,我们将以此为动画视图的背景

XML格式



    

步骤5:在res的anim文件夹内创建left_right.xml。我们将使用此动画在视图中显示它

请参阅本文“如何在Android Studio中创建动画文件夹和动画文件”。

资料夹结构:

XML格式



    

步骤6:使用MainActivity.kt文件

转到MainActivity.kt文件,并参考以下代码。下面是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。

科特林

import android.os.Bundle
import android.view.View
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // Initialize the view
    lateinit var shine: View
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // attach it with the id of view
        // that we will animate
        shine = findViewById(R.id.shine)
        shineAnimation()
    }
  
    private fun shineAnimation() {
        // attach the animation layout Using AnimationUtils.loadAnimation
        val anim = AnimationUtils.loadAnimation(this, R.anim.left_right)
        shine.startAnimation(anim)
        // override three function There will error 
        // line below the object
        // click on it and override three functions
        anim.setAnimationListener(object : Animation.AnimationListener {
            // This function starts the 
            // animation again after it ends
            override fun onAnimationEnd(p0: Animation?) {
                shine.startAnimation(anim)
            }
  
            override fun onAnimationStart(p0: Animation?) {}
  
            override fun onAnimationRepeat(p0: Animation?) {}
  
        })
    }
}

输出:

Github仓库在这里。

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