最近推出的Android bg drawable选择器状态

时间:2013-09-11 04:21:39

标签: android uibutton click

我有一个按钮,分配了一个bg,带有一个控制其bg drawable的选择器(如下所示)。我似乎找不到按下按钮后项目仍然存在的状态。为了澄清iam寻找可以相应地为当前/最近按下按钮分配图像的状态。

有谁知道如何做到这一点?

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true"
    android:dither="false"
    android:variablePadding="false">
    <item android:drawable="@drawable/option_button_yellow" android:state_pressed="true"/>
    <item android:drawable="@drawable/option_button_yellow" android:state_focused="true"/>
    <item android:drawable="@drawable/option_button_white"/>
</selector>

3 个答案:

答案 0 :(得分:1)

使用ToggleButton,然后您可以在选择器中使用state_checked。如果你希望它取消选中按钮,如果点击了其他内容,那么在其中使用带有ToggleButtons的RadioGroup(或者可能是其他视图),你必须自己管理onXXX()事件example here

答案 1 :(得分:0)

可能你正在寻找这样的事情:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_state_highlighted" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_state_highlighted"/>
<item android:drawable="@drawable/btn_state_normal" />
</selector>

其中btn_state_highlighted和btn_state_normal是您按钮各自状态的图像。

答案 2 :(得分:0)

嘿伙计,所以我想我不清楚最后一个问题,可能自己找到了解决方案。我正在寻找一组互斥的按钮,一旦点击它就会保留其改变的bg图像,并将按钮的其余部分恢复为默认的bg图像。我似乎已经能够通过用单选按钮替换按钮并将其父级设置为无线电组来完成此操作。另外,简单地更改xml drawable选择器以包含state_checked =“true”项。但是我现在遇到的问题是在删除按钮时设置自定义bg到单选按钮中的所有文本(设置android:button =“@ nul”)。这似乎弄乱了对齐。有什么想法吗?

布局

<RadioGroup android:id="@+id/options" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"  android:paddingTop="@dimen/option_button_layout_top_margin" android:paddingBottom="@dimen/option_button_layout_bottom_margin">

        <RadioButton android:id="@+id/option_skill" android:text="@string/option_skill" style="@style/option_button"/>
        <RadioButton android:id="@+id/option_item" android:text="@string/option_item" style="@style/option_button" android:layout_marginLeft="@dimen/option_button_spacing"/>

    </RadioGroup>

style.xml

<style name='option_button'>
        <item name="android:layout_width">@dimen/option_button_size</item>
        <item name="android:layout_height">@dimen/option_button_size</item>
        <item name="android:button">@null</item>
        <item name="android:background">@drawable/option_button</item>
        <item name="android:onClick">option_onclick</item>
</style>

可绘制

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true"
    android:dither="false"
    android:variablePadding="false">
    <item android:drawable="@drawable/option_button_yellow" android:state_pressed="true"/>
    <item android:drawable="@drawable/option_button_yellow" android:state_checked="true"/>
    <item android:drawable="@drawable/option_button_white"/>
</selector>