5

我想制作一个提供三种不同状态的复选框:未选中、“一半”选中和选中。为了与当前系统样式保持一致,我想为“半”选中状态使用灰色/禁用样式,但我找不到任何定义这种外观的可绘制对象。如何在不真正禁用复选框的情况下使复选框看起来已禁用?提前致谢!

4

3 回答 3

7

我花了很长时间试图完全按照您的要求做,最后意识到一个相当简单的解决方案会起作用(至少对我来说)。我没有使用我自己的可绘制对象和样式,也没有尝试获取未记录的系统资源,而是降低了半选中状态的不透明度,并恢复了全选中状态的不透明度。例如,我执行以下操作:

if (half_checked)
    checkBox.setAlpha(0.4f);
else
    checkBox.setAlpha(1.0f);

这会产生如下结果: 半检查状态

于 2014-08-26T04:17:17.720 回答
0

当我需要类似的东西时,我会使用 setBackground 或 setTextColor。您也可以使用 setPressed 使您的三个状态为(选中、未选中和已按下)。

于 2013-02-11T21:59:03.353 回答
0

由于复选框是一种按钮,因此适用于按钮的任何状态也适用于它。

这是关于 android 按钮的不同状态的讨论 如何使按钮变灰?

于 2013-02-11T21:04:35.637 回答