class WelcomeActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_welcome) supportActionBar?.hide() //设置图片动画 ViewCompat.animate(imageView).apply { //缩放,变成1.0倍 scaleX(1.0f) scaleY(1.0f) //动画时常1秒 duration = 1000 //动画监听 setListener(object : ViewPropertyAnimatorListener { override fun onAnimationEnd(view: View?) { //动画结束 //进入主界面,并结束掉该页面 startActivity(Intent(this@WelcomeActivity, LoginActivity::class.java)) finish() } override fun onAnimationCancel(view: View?) { } override fun onAnimationStart(view: View?) { } }) } }
时间: 2024-02-10 20:06:32 浏览: 76
这是一段使用 Kotlin 语言在 Android Studio 中编写的代码,实现的是一个欢迎页面的动画效果。具体实现过程如下:
1. 继承了 AppCompatActivity 类;
2. 重写了 onCreate 方法,该方法在 Activity 创建时会被调用;
3. 调用了父类的 onCreate 方法,并设置了布局文件;
4. 通过 supportActionBar?.hide() 方法隐藏了标题栏;
5. 通过 ViewCompat.animate(imageView) 方法获取 ImageView 控件的动画对象;
6. 调用了 scaleX 和 scaleY 方法,实现了图片的缩放效果;
7. 设置了动画时长为 1 秒;
8. 通过 setListener 方法设置了动画的监听器,其中 onAnimationEnd 方法在动画结束时被调用,实现了进入主界面并结束掉该页面的效果;
9. onAnimationCancel 和 onAnimationStart 方法分别在动画取消和开始时被调用。
该段代码使用了 Kotlin 中的一些语法糖,比如 Elvis 运算符(?),apply 和 lambda 表达式,使得代码更加简洁易懂。
相关问题
为什么我这段代码会报错呢class ListViewTest : AppCompatActivity() { private val data = listOf("Apple","Banana","Orange","Watermelon", "Pear","Grape","Pineapple","Strawberry","Cherry","Mango", "Apple","Banana","Orange","Watermelon","Pear","Grape", "Pineapple","Strawberry","Cherry","Mango") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.listview_layout) val adapter = ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data) listView.adpter = adapter } }
可能是因为最后一行代码中的 "adpter" 拼写错误,应该改为 "adapter"。正确的代码如下:
class ListViewTest : AppCompatActivity() {
private val data = listOf("Apple","Banana","Orange","Watermelon",
"Pear","Grape","Pineapple","Strawberry","Cherry","Mango",
"Apple","Banana","Orange","Watermelon","Pear","Grape",
"Pineapple","Strawberry","Cherry","Mango")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.listview_layout)
val adapter = ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data)
listView.adapter = adapter
}
}
class LoginActivity : BaseActivity() { private val accountList = mutableMapOf<String, String>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) supportActionBar?.hide() //记住密码功能 val prefs = getPreferences(Context.MODE_PRIVATE) val isRemember = prefs.getBoolean("remember_password", false) if (isRemember) { val account = prefs.getString("account", "") val password = prefs.getString("password", "") accountEdit.setText(account) passwordEdit.setText(password) rememberPass.isChecked = true }
}
override fun onPause() { super.onPause() //保存账户密码 val editor = getPreferences(Context.MODE_PRIVATE).edit() editor.putBoolean("remember_password", rememberPass.isChecked) editor.putString("account", accountEdit.text.toString()) editor.putString("password", passwordEdit.text.toString()) editor.apply() }
override fun onResume() { super.onResume() //恢复账户密码 val prefs = getPreferences(Context.MODE_PRIVATE) val isRemember = prefs.getBoolean("remember_password", false) if (isRemember) { val account = prefs.getString("account", "") val password = prefs.getString("password", "") accountEdit.setText(account) passwordEdit.setText(password) rememberPass.isChecked = true } }
以上是一个Kotlin语言编写的LoginActivity的部分代码,实现了记住密码的功能。在onCreate()函数中,首先获取SharedPreferences实例,并通过getBoolean()和getString()方法获取记住密码的状态和账号密码信息。在onPause()函数中,将记住密码的状态和账号密码信息保存到SharedPreferences中。在onResume()函数中,同样从SharedPreferences中获取记住密码的状态和账号密码信息,并更新到UI界面上。
需要注意的是,在这段代码中,用到了Kotlin的可空类型(Nullable Type)和安全调用运算符(?.)来避免空指针异常。同时,也体现了Kotlin的函数式编程思想,使用了高阶函数(apply()方法)和Lambda表达式。
阅读全文