Android:为 Speaker 创建一个 ImageButton On/Off

Android: create an ImageButton for Speaker On/Off

我正在编写一个应用程序,在游戏中计算并显示分数。

现在我想给机会切换 ON/Off 扬声器。我认为,使用 ImageButton 应该是解决方案。

但是当扬声器关闭但按钮必须保持活动状态时,我该如何“调暗”按钮。隐形或禁用不是解决方案。改变按钮中的图像是最好的吗?

请问有人有开关 On/Off 按钮的例子吗?

我正在研究 AndroidStudio4.1 和 Kotlin

最好有一个复选框,因为该视图默认处理 true/false 状态。您必须为按钮创建一个可绘制对象,然后将其设置为按钮。

假设您的可绘制对象是 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
    }

}

所以视图担心外观,你担心逻辑