问题描述
现在,我想借此机会打开/关闭扬声器。我认为,使用ImageButton应该是解决方案。
但是,当扬声器关闭时,如何“调暗”按钮,但必须保持激活状态。隐形或禁用不是解决方案。最好更改按钮中的图像吗?
请问有人有开关“开/关”按钮的示例。
我正在使用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
}
}
因此视图担心外观,您担心逻辑