这两个组件的话因为比较简单,某些书都会直接略过,不过笔者觉得还是有比较介绍一下这两个组件:\
相信有朋友都不知道这两个组件是怎么样的,so,普及下,上图:
ToggleButton:开关按钮:
,就是点击以后那个蓝色的底部会变暗,就是一个开关,蓝色的时候表示on,灰色off
Switch:开关:
点击以后会左右移动,在右边的时候表示on,左边表示off
!!!这里要注意一下,switch是4.0以后才出现的,所以要修改一下androidmanifest.xml中的最低版本的minsdk 改为 14或以上,不然会报错
因为这两个都是Button的子类,所以继承了Button的大部分属性,这里的话只将特殊的属性
main.xml文件:
[html]
view plain
print
-
-
<
ToggleButton
-
android:id
=
"@+id/TogBtn"
-
android:layout_width
=
"wrap_content"
-
android:layout_height
=
"wrap_content"
-
android:textOn
=
"声音开"
-
android:textOff
=
"声音关闭"
-
android:checked
=
"true"
-
/>
-
-
<
Switch
-
android:id
=
"@+id/switcher"
-
android:layout_width
=
"wrap_content"
-
android:layout_height
=
"wrap_content"
-
android:textOn
=
"横向排列"
-
android:textOff
=
"纵向排列"
-
android:thumb
=
"@drawable/btnon"
-
android:checked
=
"true"
-
/>
-
-
<
Button
-
android:id
=
"@+id/btntest1"
-
android:layout_width
=
"wrap_content"
-
android:layout_height
=
"wrap_content"
-
android:text
=
"测试按钮1"
-
/>
-
-
<
Button
-
android:id
=
"@+id/btntest2"
-
android:layout_width
=
"wrap_content"
-
android:layout_height
=
"wrap_content"
-
android:text
=
"测试按钮2"
-
/>
-
-
<
Button
-
android:id
=
"@+id/btntest3"
-
android:layout_width
=
"wrap_content"
-
android:layout_height
=
"wrap_content"
-
android:text
=
"测试按钮3"
-
/>
MainActivity.java部分:
[java]
view plain
print
-
private
ToggleButton toggle;
-
private
Switch switcher;
-
private
LinearLayout linear;
-
@Override
-
protected
void
onCreate(Bundle savedInstanceState) {
-
-
super
.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
-
toggle = (ToggleButton) findViewById(R.id.TogBtn);
-
switcher = (Switch) findViewById(R.id.switcher);
-
linear = (LinearLayout) findViewById(R.id.LinearLayout1);
-
-
switcher.setOnCheckedChangeListener(listener);
-
-
-
}
-
-
private
OnCheckedChangeListener listener =
new
OnCheckedChangeListener() {
-
-
@Override
-
public
void
onCheckedChanged(CompoundButton buttonView,
boolean
isChecked) {
-
-
if
(isChecked)linear.setOrientation(
0
);
-
else
linear.setOrientation(
1
);
-
}
-
};
代码解释:
在xml文件中分别定义了一个ToggleButton和Switch开关,设置了textoff和textOn时显示的文本,设置选择状态,并设置了三个普通按钮
在java主文件中实例化两个开关对象,findViewByid后,再new一个onCheckedChangeListener对象,为switch添加触发事件;
setOrientation():指定linearlayout的方向,0和1,默认是horizontal横向排列,即0的时候!1的话就是竖直方向vertical
这两个组件的话因为比较简单,某些书都会直接略过,不过笔者觉得还是有比较介绍一下这两个组件:\相信有朋友都不知道这两个组件是怎么样的,so,普及下,上图:ToggleButton:开关按钮:,就是点击以后那个蓝色的底部会变暗,就是一个开关,蓝色的时候表示on,灰色offSwitch:开关:点击以后会左右移动,在右边的时候表示on,左边表示off!!!这里要注意一下,switc
刚开始接触
开关
样式的
按钮
是在IOS系统上面,它的切换以及滑动十分帅气,深入人心。
所谓的
开关
按钮
,就是只有2个状态:on和off,下图就是系统IOS 7上
开关
按钮
效果。
起初我在
android
上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,
android
也有了自己的原生态
开关
控件,并且在4.0版本中又优化加入了新的类似控件--
Switch
控件,以及使用起来十分简单的T...
<?xml version=1.0 encoding=utf-8?>
<LinearLayout xmlns:
android
=http://schemas.
android
.com/apk/res/
android
android
:layout_width=match_parent
android
:layout_height=match_parent
android
:orientation=vertical>
在coding的过程中需要用到简单的
switch
-button,因为
Android
自带库没有此
组件
,使用就打算自定义view实现一个
开关
按钮
。
我使用了view的组合,首先思考
开关
按钮
的组成,分为2个部分,一个是底部的圆角矩形,一部分是在
开关
过程中变换位置的圆。
于是写出
按钮
的xml布局
layout_
switch
.xml <?xml version="1.0" encoding="utf