【问题标题】:Get ToggleButton drawable from selector从选择器获取可绘制的 ToggleButton
【发布时间】:2011-06-22 15:06:55
【问题描述】:

我有一个 ToggleButton,它使用选择器在 2 个图像(选中和未选中)之间进行选择。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"
          android:drawable="@drawable/img_piece1" /> <!-- pressed -->
    <item     android:drawable="@drawable/img_piece2" /> <!-- default/unchecked -->
</selector>

有没有办法在代码中检索切换按钮的当前可绘制资源(选中/未选中)?我尝试使用 ToggleButton.getBackground(),但这似乎总是返回默认的 Drawable。

【问题讨论】:

标签: android


【解决方案1】:

我想出了如何做到这一点,所以我回答了我自己的问题。 :)

显然可以使用 ToggleButton.getBackground() 检索当前的可绘制对象。getCurrent()

希望对你有帮助。

【讨论】:

    【解决方案2】:

    几天前我也遇到了同样的情况.. 但是通过给出它的 TEXT ON =“。”和 TextOFF 为 "" 即空白... 那个点不会出现在那个图像上(可能)因为我的没有。 效果很好 然后检查切换按钮上的文本。

    【讨论】:

    • 好吧,我已经在使用 ToggleButton.isChecked() 来确定当前状态并使用它来指定正确的图像。但是,如果可能,我想在不诉诸检查状态或检查其他属性的情况下获取当前图像。因为这“可能”会导致稍后在选择器使用的图像之间断开连接(如果我忘记在任何一个地方更新)。
    • 嘿,找到了更好的方法。详情请查看我的回答。
    【解决方案3】:

    虽然我从未玩过它,但您可能想看看getDrawableState()。它可能有你要找的东西。

    【讨论】:

    • 我看了看,但似乎无法弄清楚如何使用返回的 int array[] 值来获取 Drawable。转储值显示以下 3 个值(对于处于选中状态的切换按钮),[0]=0x101009d,[1]=0x101009e,[2]=0x10100a0。根据 R.attr 是 'state_window_focused'、'state_enabled'、'state_checked'
    猜你喜欢
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2012-11-20
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多