标注:本文为个人整理,仅做自己学习参考使用,请勿转载和转发
2018-06-11: 初稿。参考博主coder-pig

0. 引言

  • ToggleButton: 开关按钮官方API ToggleButton
  • Switch: 开关官方API Switch;

1. 核心属性

1.1 ToggleButton 开关按钮

可以提供我们设置的属性

  • android: disableAlpha: 设置按钮在禁用时的透明度
  • android: textOff: 按钮没有被选中时显示的文字
  • android: textOn: 按钮被选中时显示的文字,另外,除了这个我们还可以写个selector,然后设置下Background属性即可
1.2 Switch 开关

可以提供我们设置的属性

  • android:showText:设置on/off的时候是否显示文字,boolean
  • android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
  • android: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. 使用示例

实现了一个小栗子,但是滑块有个缺点就是不能在xml中对滑块和底部的大小进行设置,就是素材多大,Switch就会多大,但是可以在Java中获得Drawable对象,然后对大小进行修改,简单的栗子:
运行效果图:

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

<?xml version="1.0" encoding="utf-8"?>        

track_selctor.xml:

<?xml version="1.0" encoding="utf-8"?>        

布局文件:activity_main.xml:

        

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;        }    }}

最后一个没有找到比较合适的图片,没有验证

更多相关文章

  1. Android模拟手机QQ+发送短信案例
  2. Android(安卓)Studio中buildToolsVersion,miniSdkVersion,compil
  3. Android(安卓)-- android activity 各种布局方式以及相关参数
  4. android rgb颜色设置方法及常用颜色的RGB值
  5. Android(安卓)PullToRefresh(下拉刷新)的使用详解
  6. 代码设置EditText只输入数字、字母
  7. android studio代理设置
  8. Mac 中eclipse 遇到的问题及简单设置
  9. Android(安卓)Java中调用js代码,js中调用Java代码

随机推荐

  1. android布局属性大全
  2. lua学习笔记 1 android 调用Lua, Lua脚本
  3. Android——PopupWindow
  4. Android(安卓)Gradle Plugin指南(三)——依
  5. AM335X Starter Kit Android(安卓)开发环
  6. android 中theme.xml与style.xml的区别
  7. 命令行装android
  8. Android控件属性大全
  9. 安卓相关学习
  10. Android下载文本文件和mp3文件