本节深受大家介绍的Android基本UI控件是:开关按钮ToggleButton和开关Switch,这点儿个实际都是开关组件,只是后者需要以Android
4.0之后才会用 所以AndroidManifest.xml文件被的minsdk需要 >= 14
否则会报错~,先来看看这片独控件长什么样先, Android
5.0后迅即有限个控件相比以前来说好看了重重,先押下5.0前之样板:

5.0以前的ToggleButton和Switch:XML 1XML 2 

 

5.0版本:XML 3

好吧,鲜明的对比…接下来我们不怕来学习者两只控件的运用吧,其实简单独底行使几乎是同等之。

初步之前贴下官方API先:Switch;ToggleButton

1.核心属性讲解:

1)ToggleButton(开关按钮)

可是供应我们安的特性:

  • android:disabledAlpha:设置按钮在夺时之透明度
  • android:textOff:按钮无给选中时展示的亲笔
  • android:textOn:按钮被选中时显得的文
    另外,除了是我们尚得好写个selector,然后设置下Background属性即可~

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.用示例:

以比较简单,所以我们将她们写到同,另外,我们为Switch设置下滑块以及底部的图,实现
一个类于IOS
7的滑块的意义,但是生只毛病就是是休可知当XML中对滑块和底的分寸进行安装,
就是材料多老,Switch就会多生,我们得以当Java中收获Drawable对象,然后对大小进行修改,
简单的例证:

运转效果图:

XML 4

实现代码XML: 先是简单个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.runoob.com/w3cnote/android-tutorial-togglebutton-switch.html

相关文章

网站地图xml地图