素材巴巴 > 程序开发 >

Android基础入门教程——2.3.6 开关按钮ToggleButton和开关Switch

程序开发 2023-09-20 08:45:14

Android基础入门教程——2.3.6 开关按钮ToggleButton和开关Switch

标签(空格分隔): Android基础入门教程


本节引言:

本节给大家介绍的Android基本UI控件是:开关按钮ToggleButton和开关Switch,可能大家对着两个组件
并不熟悉,突然想起笔者的第一间外包公司,是否在wifi下联网的开关,竟然用的TextView,然后叫美工
且两个切换前后的图,然后代码中进行设置,当然点击TextView的时候判断状态,然后设置对应的背景…
好吧,也是醉了,好吧…本节讲解的两个其实都是开关组件,只是后者需要在Android 4.0以后才能使用
所以AndroidManifest.xml文件中的minsdk需要 >= 14 否则会报错~,先来看看这两个控件长什么样先,
Android 5.0后这两个控件相比以前来说好看了许多,先看下5.0前的样子:

5.0以前的ToggleButton和Switch:
5.0版本:

好吧,鲜明的对比…接下来我们就来学习者两个控件的使用吧,其实两个的使用几乎是相同的
开始之前贴下官方API先:Switch;ToggleButton


1.核心属性讲解:

1)ToggleButton(开关按钮)

可供我们设置的属性:

2) Switch(开关)

可供我们设置的属性:


2.使用示例:

因为比较简单,所以我们把他们写到一起,另外,我们为Switch设置下滑块和底部的图片,实现
一个类似于IOS 7的滑块的效果,但是有个缺点就是不能在XML中对滑块和底部的大小进行设置,
就是素材多大,Switch就会多大,我们可以在Java中获得Drawable对象,然后对大小进行修改,
简单的例子:

运行效果图:

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


 
 

track_selctor.xml:


 
 

布局文件:activity_main.xml:


 

MainActivity.java:

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{private ToggleButton tbtn_open;private Switch swh_status;@Overrideprotected 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);}@Overridepublic 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;}}
 }


标签:

上一篇: Android UI-SlidingMenu侧滑菜单效果 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。