如何在 Android 中创建自定义开关按钮?
在 Android 中,Switch 是一种按钮,允许用户在两个操作或实例之间切换。通常,Switch 用于在可以调用任何操作或功能的两个选项之间进行选择。示例 Switch 如下图所示。下面给出了一个示例视频,以了解我们将在本文中做什么。请注意,我们将使用Kotlin语言来实现这个项目。
在本文中,我们将向您展示如何自定义 Switch 以在 Android 中更好地显示。 IDE 准备就绪后,请按照以下步骤操作。
分步实施
第 1 步:在 Android Studio 中创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在Kotlin中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。
第二步:创建custom_switch.xml文件,编写如下代码
导航到res > drawable 。右键单击可绘制文件夹,转到新建,然后单击可绘制资源文件。现在将名称设置为 custom_switch,将根元素设置为选择器,然后单击确定。现在将以下代码添加到您的文件中。下面的代码表示 Switch 上的两种状态,即 true 和 false。当为真时,颜色为绿色,当为假时,颜色为红色。
XML
-
-
XML
Kotlin
package org.geeksforgeeks.switchwidget
import android.annotation.SuppressLint
import android.os.Bundle
import android.widget.Switch
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
@SuppressLint("UseSwitchCompatOrMaterialCode")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mSwitch = findViewById(R.id.switch_1)
// Display Toasts in each of true and false case
mSwitch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
Toast.makeText(applicationContext, "Switch On", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(applicationContext, "Switch Off", Toast.LENGTH_SHORT).show()
}
}
}
}
第 3 步:使用 activity_main.xml 文件
导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。添加一个开关,如下所示。将 thumb 属性设置为上面代码中创建的自定义开关。
XML
第 4 步:使用 MainActivity.kt 文件
转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
package org.geeksforgeeks.switchwidget
import android.annotation.SuppressLint
import android.os.Bundle
import android.widget.Switch
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
@SuppressLint("UseSwitchCompatOrMaterialCode")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mSwitch = findViewById(R.id.switch_1)
// Display Toasts in each of true and false case
mSwitch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
Toast.makeText(applicationContext, "Switch On", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(applicationContext, "Switch Off", Toast.LENGTH_SHORT).show()
}
}
}
}
输出:
可以看到,当 Switch 为 false 时,拇指的颜色为红色。单击 Switch 时,Switch 变为 true,拇指颜色变为绿色。