您的位置:首页 > 移动开发 > Android开发

ToggleButton 实现开关效果

2015-08-17 20:42 531 查看
利用ToggleButton可以实现一个简单的开关的效果,先上效果图:



因为动态图截取的时候,颜色好像有问题,就用这个颜色的啦。凑合着能看。

首先在布局中放一个ToggleButton和ImageView

<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New ToggleButton"
android:id="@+id/toggleButton"
android:textOn=""
android:textOff=""
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/tbtn_bg"
android:checked="false"/>


checked:默认的状态,false为关

textOn:状态为开的时候显示的文本,默认是on

textOff:状态为关的时候显示的文本,默认是off

新建一个selector用来显示不同状态的时候的背景:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/switch_on" android:state_checked="true"></item>
<item android:drawable="@mipmap/switch_off" android:state_checked="false"></item>
</selector>


这样,在ToggleButton状态为on和off的时候,分别显示不同的背景。也可以在代码中添加监听,做响应的操作:

tbtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
iv.setBackgroundColor(isChecked ? Color.GREEN : Color.RED);
}
});


这里就是监听了状态的改变,然后改变ImageView的背景。这样一个简单的开关效果及监听就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息