发光效果用于使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的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!