Android:如何创建幻灯片(开/关)按钮

时间:2011-11-16 11:01:53

标签: android button slider switch-statement slide

我想创建一个幻灯片按钮(=某些东西作为开关),有两种状态:打开和关闭,因此用户必须按下按钮并滑动它才能更改状态(类似于解锁滑块但不是整个屏幕)。你知道怎么做吗?我真的试图找到答案,但我没有成功。

非常感谢!

3 个答案:

答案 0 :(得分:12)

//在您的布局设计中,以下行

<RelativeLayout android:layout_width="wrap_content" android:id="@+id/rl_onoff"
    android:layout_height="wrap_content">
<ImageView android:id="@+id/on_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/on_btn" android:visibility="visible"></ImageView>
<ImageView android:id="@+id/off_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/off_btn" android:visibility="invisible"></ImageView>
   </RelativeLayout>

//在您的活动中调用此

ImageView mNotification_on_btn=(ImageView)findViewById(R.id.on_btn);
ImageView mNotification_off_btn=(ImageView)findViewById(R.id.off_btn);

    mNotification_on_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_on_btn.setVisibility(View.GONE);
                mNotification_off_btn.setVisibility(View.VISIBLE);
            }
        });
    mNotification_off_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_off_btn.setVisibility(View.GONE);
                mNotification_on_btn.setVisibility(View.VISIBLE);
            }
        });

//这将在关闭切换按钮enter image description here上切换为iphone样式 enter image description here

答案 1 :(得分:10)

如果您的目标SDK高于4.0(Ice Cream Sandwich),似乎Switch component是最佳解决方案。因此对于其他将面临同样问题的人来说。 :)

答案 2 :(得分:1)

您可以使用复选框或ToggleButton来实现此目的。以下是一个例子

xml文件

 <CheckBox
        android:id="@+id/check_on_of"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/chec_box_on_off"
       />

drawable chec_box_on_off文件是

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/check_box_on" android:state_checked="true"/>
<item android:drawable="@drawable/check_box_off" android:state_checked="false"/>
</selector>

你会得到关闭按钮,你也可以检查复选框是打开还是关闭。

java代码是

 CheckBox check = (CheckBox)findViewById(R.id.check_on_of);
 check.isChecked();

同样,您也可以使用ToggleButton实现此目的。