当前位置:首页 > 空调维修 > 文章正文

开关按钮ToggleButton和开关Switch

编辑:[db:作者] 时间:2024-08-25 03:46:19

好吧,也是醉了,好吧...本节讲解的两个实在都是开关组件,只是后者须要在Android 4.0往后才能利用 以是AndroidManifest.xml文件中的minsdk须要 >= 14 否则会报错~,先来看看这两个控件长什么样先, Android 5.0后这两个控件比较以前来说好看了许多,先看下5.0前的样子:

5.0以前的ToggleButton和Switch:

开关按钮ToggleButton和开关Switch

5.0版本:

好吧,光鲜的比拟...接下来我们就来学习者两个控件的利用吧,实在两个的利用险些是相同的。

开始之前贴下官方API先:Switch;ToggleButton

1.核心属性讲解:

1)ToggleButton(开关按钮)

可供我们设置的属性:

android:disabledAlpha:设置按钮在禁用时的透明度android:textOff:按钮没有当选中时显示的笔墨android:textOn:按钮当选中时显示的笔墨 其余,除了这个我们还可以自己写个selector,然后设置下Background属性即可~

2) Switch(开关)

可供我们设置的属性:

android:showText:设置on/off的时候是否显示笔墨,booleanandroid:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,booleanandroid:switchMinWidth:设置开关的最小宽度android:switchPadding:设置滑块内笔墨的间隔android:switchTextAppearance:设置开关的笔墨外不雅观,暂时没创造有什么用...android:textOff:按钮没有当选中时显示的笔墨android:textOn:按钮当选中时显示的笔墨android:textStyle:笔墨风格,粗体,斜体写划线那些android:track:底部的图片android:thumb:滑块的图片android:typeface:设置字体,默认支持这三种:sans, serif, monospace;除此以外还可以利用 其他字体文件(.ttf),首先要将字体文件保存在assets/fonts/目录下,不过须要在Java代码中设置: Typeface typeFace =Typeface.createFromAsset(getAssets(),\"大众fonts/HandmadeTypewriter.ttf\"大众); textView.setTypeface(typeFace);

2.利用示例:

由于比较大略,以是我们把他们写到一起,其余,我们为Switch设置下滑块和底部的图片,实现 一个类似于IOS 7的滑块的效果,但是有个缺陷便是不能在XML中对滑块和底部的大小进行设置, 便是素材多大,Switch就会多大,我们可以在Java中得到Drawable工具,然后对大小进行修正, 大略的例子:

运行效果图:

实当代码: 先是两个drawable的文件: thumb_selctor.xml:

<?xml version=\"大众1.0\"大众 encoding=\公众utf-8\公众?>

<selector xmlns:android=\公众http://schemas.android.com/apk/res/android\"大众>

<item android:state_pressed=\"大众true\"大众 android:drawable=\"大众@drawable/switch_btn_pressed\公众/>

<item android:state_pressed=\"大众false\公众 android:drawable=\"大众@drawable/switch_btn_normal\"大众/>

</selector>

track_selctor.xml:

<?xml version=\公众1.0\"大众 encoding=\"大众utf-8\公众?>

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

<item android:state_checked=\公众true\公众 android:drawable=\"大众@drawable/switch_btn_bg_green\公众/>

<item android:state_checked=\公众false\"大众 android:drawable=\"大众@drawable/switch_btn_bg_white\公众/>

</selector>

布局文件:activity_main.xml:

<LinearLayout xmlns:android=\公众http://schemas.android.com/apk/res/android\"大众

xmlns:tools=\"大众http://schemas.android.com/tools\"大众

android:layout_width=\"大众match_parent\公众

android:layout_height=\"大众match_parent\"大众

android:orientation=\公众vertical\"大众

tools:context=\"大众.MainActivity\"大众>

<ToggleButton

android:id=\公众@+id/tbtn_open\公众

android:layout_width=\"大众wrap_content\公众

android:layout_height=\公众wrap_content\"大众

android:checked=\公众true\"大众

android:textOff=\"大众关闭声音\"大众

android:textOn=\"大众打开声音\"大众 />

<Switch

android:id=\"大众@+id/swh_status\公众

android:layout_width=\"大众wrap_content\"大众

android:layout_height=\"大众wrap_content\"大众

android:textOff=\"大众\公众

android:textOn=\"大众\公众

android:thumb=\公众@drawable/thumb_selctor\"大众

android:track=\公众@drawable/track_selctor\"大众 />

</LinearLayout>

MainActivity.java:

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{

private ToggleButton tbtn_open;

private Switch swh_status;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tbtn_open = (ToggleButton) findViewById(R.id.tbtn_open);

swh_status = (Switch) findViewById(R.id.swh_status);

tbtn_open.setOnCheckedChangeListener(this);

swh_status.setOnCheckedChangeListener(this);

}

@Override

public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

switch (compoundButton.getId()){

case R.id.tbtn_open:

if(compoundButton.isChecked()) Toast.makeText(this,\"大众打开声音\公众,Toast.LENGTH_SHORT).show();

else Toast.makeText(this,\"大众打开声音\公众,Toast.LENGTH_SHORT).show();

break;

case R.id.swh_status:

if(compoundButton.isChecked()) Toast.makeText(this,\"大众开关:ON\"大众,Toast.LENGTH_SHORT).show();

else Toast.makeText(this,\"大众开关:OFF\"大众,Toast.LENGTH_SHORT).show();

break;

}

}

}

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/ktwx/105885.html

XML地图 | 自定链接

Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码

声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com