我想创建一个幻灯片按钮(=某些东西作为开关),有两种状态:打开和关闭,因此用户必须按下按钮并滑动它才能更改状态(类似于解锁滑块但不是整个屏幕)。你知道怎么做吗?我真的试图找到答案,但我没有成功。
非常感谢!
答案 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);
}
});
//这将在关闭切换按钮上切换为iphone样式
答案 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实现此目的。