【问题标题】:Android: create an ImageButton for Speaker On/OffAndroid:为扬声器开/关创建一个 ImageButton
【发布时间】:2021-02-11 06:23:21
【问题描述】:
我正在编写一个应用程序,在游戏中计算和显示分数。
现在我想提供一个打开/关闭扬声器的机会。我认为,使用 ImageButton 应该是解决方案。
但是,当扬声器关闭时,我如何“调暗”按钮,但按钮必须保持活动状态。隐形或禁用不是解决方案。最好是更改按钮中的图像吗?
请问有谁有开关按钮的例子吗?
我正在开发 AndroidStudio4.1 和 Kotlin
【问题讨论】:
标签:
android-studio
kotlin
imagebutton
【解决方案1】:
最好有一个复选框,因为该视图默认处理真/假状态。您必须为按钮创建一个可绘制对象,然后将其设置为按钮。
假设你的drawable是cb_selector_sound
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_sound_on" android:state_checked="true" />
<item android:drawable="@drawable/ic_sound_off" android:state_checked="false" />
</selector>
然后像这样在按钮中使用它:
<CheckBox
android:id="@+id/soundCheckbox"
android:button="@drawable/cb_selector_sound"
.../>
那么你就可以听到复选框的变化了
//find the view
soundCheckbox.setOnCheckeChangedListener {_, isChecked ->
if (isChecked) {
//turn sound on
} else {
//turn sound off
}
}
所以视图担心外观而你担心逻辑