0

我想以微调器(或老虎机)的形式实现一个切换按钮。基本上,它将由一个带有 OFF 文本的大矩形组成,当用户单击它时,ON 字样会动画到矩形上而不是关闭。有没有一种简单的方法可以做到这一点,或者你知道可以做到这一点的小部件吗?

到目前为止我做了什么

我有两张图片,每一张都代表切换按钮可以处于的状态(即打开和关闭)。然后我创建了一个可绘制的 XML 文件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/on" android:state_checked="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/on" android:state_checked="true" android:state_focused="false"/>
    <item android:drawable="@drawable/off" android:state_checked="false" android:state_pressed="true"/>
    <item android:drawable="@drawable/off" android:state_checked="false" android:state_focused="false"/>

</selector>

然后我将背景设置为ToggleButtonXML 可绘制对象:

<ToggleButton
    android:id="@+id/toggleButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/btntoggle_selector"
    android:textColor="@android:color/white"
    android:textOff="OFF"
    android:textOn="ON " />

在此处输入图像描述

4

1 回答 1

1

如果要以编程方式更改按钮的状态,则需要使用setChecked切换按钮上的方法

// Declare button
private ToggleButton myButton;
...   
// Initialise button
myButton = (ToggleButton) findViewById(R.id.myButton);
...
// Sets button text as "OFF" and "ON"
myButton.setText("OFF");
myButton.setText("ON");
myButton.setChecked(false);
...
// Set an on click listener
myButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick() {
        myButton.setChecked(true);

        // CALL WHATEVER METHOD IS SUPPOSED TO BE CALLED WHEN BUTTON IS PRESSED

    }
});
于 2013-04-13T16:24:16.003 回答