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

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先:SwitchToggleButton


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对象,然后对大小进行修改,
简单的例子:

运行效果图:

实现代码:
先是两个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;

        }
    }
}


  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
第一篇Android系统结构和SDK使用............................................................................................................................5 第1章 Android的系统介绍...........................................................................................................................................5 1.1 系统介绍...........................................................................................................................................................5 1.2 软件结构和使用的工具...................................................................................................................................7 第2章 Android SDK的开发环境..................................................................................................................................10 2.1 Android SDK的结构......................................................................................................................................10 2.2 Android SDK环境安装..................................................................................................................................11 2.2.1. 安装JDK基本Java环境。................................................................................................................11 2.2.2. 安装Eclipse...........................................................................................................................................12 2.2.3. 获得Android SDK...............................................................................................................................12 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT...............................................................................14 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT.....................................................................................17 2.2.5. 在Eclipse中配置Android SDK.........................................................................................................20 2.3 Android中运行仿真器环境............................................................................................................................21 2.3.1. 建立Android虚拟设备.......................................................................................................................21 2.3.2. 运行虚拟设备........................................................................................................................................22 2.3.3. 使用Android中的工具.......................................................................................................................23 2.3.4. 使用logcat.............................................................................................................................................24 2.3.5. 使用仿真器控制....................................................................................................................................25 2.3.6. 命令行工具adb、mksdcard等..........................................................................................................26 2.3.7. 使用设备控制........................................................................................................................................28 2.4 Android中建立工程........................................................................................................................................29 2.4.1. 建立工程................................................................................................................................................29 2.4.2. 查看和编辑各个文件............................................................................................................................31 2.4.3. 运行工程................................................................................................................................................33 第二篇 Android应用程序的概述和框架.......................................................................................................................36 第3章 Android应用层程序的开发方式.......................................................................................................................36 3.1 应用程序开发的结构.......................................................................................................................................36 3.2 API参考文档的使用........................................................................................................................................36 第4章Android应用程序示例........................................................................................................................................40 4.1 HelloActivity程序的运行............................................................................................................................40 4.2 HelloActivity的源文件结构........................................................................................................................41 4.2.1.Android.mk文件.................................................................................................................................41 4.2.2.AndroidManifest.xml文件.................................................................................................................42 4.2.3.源代码文件...........................................................................................................................................42 4.2.4.布局文件...............................................................................................................................................43 4.2.5.其他资源文件.......................................................................................................................................43 4.3 HelloActivity的编译结构............................................................................................................................43 4.4 SkeletonApp的程序的运行........................................................................................................................44 4.5 SkeletonApp的源文件结构........................................................................................................................44 4.6 SkeletonApp的编译结构............................................................................................................................46 第5章 Android应用程序的内容...................................................................................................................................47 5.1 Android应用程序的概念性描述.................................................................................................................47 5.1.1.应用程序的组成部分...........................................................................................................................47 5.1.2.应用程序的生命周期...........................................................................................................................48 5.2 应用程序包含的各个文件.............................................................................................................................50 5.3 使用am工具启动Android应用程序........................................................................................................51 2 www.linuxidc.com 第三篇Android的UI系统实现.....................................................................................................................................53 第6章 UI的基本外形和控制........................................................................................................................................53 6.1 控件和基本事件的响应.................................................................................................................................53 6.1.1.事件响应方法.......................................................................................................................................54 6.1.2.第二种响应方法...................................................................................................................................56 6.1.3.第三种响应方法...................................................................................................................................57 6.2 键盘事件的响应...............................................................................................................................................57 6.3 运动事件的处理...............................................................................................................................................59 6.4 屏幕间的跳转和事件的传递...........................................................................................................................62 6.4.1.跳转的方法...........................................................................................................................................62 6.4.2.带有返回值的跳转...............................................................................................................................63 6.5菜单的使用........................................................................................................................................................66 6.6弹出对话框........................................................................................................................................................67 6.6.1. 提示信息和两个按钮的对话框............................................................................................................68 6.6.2. 提示信息和三个按钮的对话框............................................................................................................69 6.6.3. 列表项对话框........................................................................................................................................70 6.6.4. 单选项和按钮对话框............................................................................................................................70 6.6.5. 复选项和按钮对话框............................................................................................................................71 6.6.6. 文本的按键对话框(使用布局文件)................................................................................................72 6.7 样式的设置.......................................................................................................................................................74 6.7.1.预定样式对话框...................................................................................................................................74 6.7.2.自定义样式对话框...............................................................................................................................74 6.7.3.窗口透明样式示例...............................................................................................................................75 第7章控件(Widget)的使用.....................................................................................................................................78 7.1 Android中控件的层次结构.........................................................................................................................78 7.2 基本控件的使用.............................................................................................................................................79 7.2.1.普通按钮...............................................................................................................................................79 7.2.2.图像区域...............................................................................................................................................80 7.2.3.图像按钮...............................................................................................................................................82 7.2.4.进度条...................................................................................................................................................83 7.2.5.多种控件...............................................................................................................................................85 7.3 自定义的视图...................................................................................................................................................86 第8章视图组(ViewGroup)和布局(Layout)的使用...........................................................................................89 8.1 Android的屏幕元素体系................................................................................................................................89 8.2 几种独立使用的视图组...................................................................................................................................90 8.2.1.网页视图...............................................................................................................................................90 8.2.2.旋转按钮...............................................................................................................................................91 8.2.3.文本切换器...........................................................................................................................................93 8.2.4.图像切换器...........................................................................................................................................94 8.3 作为简单容器使用的视图组...........................................................................................................................95 8.3.1.单选按钮组...........................................................................................................................................95 8.3.2.使用滚动条...........................................................................................................................................96 8.4 布局(Layout)..............................................................................................................................................99 8.4.1.基本的布局内容...................................................................................................................................99 8.4.2.线性布局(LinearLayout).............................................................................................................100 8.4.3.相对布局(RelativeLayout)...........................................................................................................101 8.4.4.表单布局(Table Layout)..............................................................................................................103 8.5 网格(Grid)视图组...................................................................................................................................103 3 www.linuxidc.com 8.6 列表(List)视图组....................................................................................................................................107 8.7 使用Tab组织UI.........................................................................................................................................109 第9章 2D图形接口的使用.........................................................................................................................................113 9.1 使用2D图形接口的程序结构。..................................................................................................................113 9.2 图像、图形、文本的基本绘制.....................................................................................................................114 9.3 文本的对齐方式.............................................................................................................................................116 9.4 使用路径效果(PathEffect).....................................................................................................................118 9.5 剪裁效果.........................................................................................................................................................119 9.6 记录绘制的过程.............................................................................................................................................121 9.7 动画效果.........................................................................................................................................................123 第10章 OpenGL 3D图形的使用................................................................................................................................125 10.1 使用OpenGL图形接口的程序结构。.....................................................................................................125 10.2 基本的绘制...................................................................................................................................................126 10.3 渲染器的实现...............................................................................................................................................127 10.4 3D动画效果的实现......................................................................................................................................129
第1章 Android的系统介绍5 1.1 系统介绍5 1.2 软件结构和使用的工具7 第2章 Android SDK的开发环境10 2.1 Android SDK的结构10 2.2 Android SDK环境安装11 2.2.1. 安装JDK基本Java环境11 2.2.2. 安装Eclipse12 2.2.3. 获得Android SDK12 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT14 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT17 2.2.5. 在Eclipse中配置Android SDK20 2.3 Android中运行仿真器环境21 2.3.1. 建立Android虚拟设备21 2.3.2. 运行虚拟设备22 2.3.3. 使用Android中的工具23 2.3.4. 使用logcat24 2.3.5. 使用仿真器控制25 2.3.6. 命令行工具adb、mksdcard等26 2.3.7. 使用设备控制28 2.4 Android中建立工程29 2.4.1. 建立工程29 2.4.2. 查看和编辑各个文件31 2.4.3. 运行工程33 第二篇 Android应用程序的概述和框架36 第3章 Android应用层程序的开发方式36 3.1 应用程序开发的结构36 3.2 API参考文档的使用36 第4章Android应用程序示例40 4.1 HelloActivity程序的运行40 4.2 HelloActivity的源文件结构41 4.2.1.Android.mk文件41 4.2.2.AndroidManifest.xml文件42 4.2.3.源代码文件42 4.2.4.布局文件43 4.2.5.其他资源文件43 4.3 HelloActivity的编译结构43 4.4 SkeletonApp的程序的运行44 4.5 SkeletonApp的源文件结构44 4.6 SkeletonApp的编译结构46 第5章 Android应用程序的内容47 5.1 Android应用程序的概念性描述47 5.1.1.应用程序的组成部分47 5.1.2.应用程序的生命周期48 5.2 应用程序包含的各个文件50 5.3 使用am工具启动Android应用程序51 第三篇Android的UI系统实现53 第6章 UI的基本外形和控制53 6.1 控件和基本事件的响应53 6.1.1.事件响应方法54 6.1.2.第二种响应方法56 6.1.3.第三种响应方法57 6.2 键盘事件的响应57 6.3 运动事件的处理59 6.4 屏幕间的跳转和事件的传递62 6.4.1.跳转的方法62 6.4.2.带有返回值的跳转63 6.5菜单的使用66 6.6弹出对话框67 6.6.1. 提示信息和两个按钮的对话框68 6.6.2. 提示信息和三个按钮的对话框69 6.6.3. 列表项对话框70 6.6.4. 单选项和按钮对话框70 6.6.5. 复选项和按钮对话框71 6.6.6. 文本的按键对话框(使用布局文件72 6.7 样式的设置74 6.7.1.预定样式对话框74 6.7.2.自定义样式对话框74 6.7.3.窗口透明样式示例75 第7章控件(Widget)的使用78 7.1 Android中控件的层次结构78 7.2 基本控件的使用79 7.2.1.普通按钮79 7.2.2.图像区域80 7.2.3.图像按钮82 7.2.4.进度条83 7.2.5.多种控件85 7.3 自定义的视图86 第8章视图组(ViewGroup)和布局(Layout)的使用89 8.1 Android的屏幕元素体系89 8.2 几种独立使用的视图组90 8.2.1.网页视图90 8.2.2.旋转按钮91 8.2.3.文本切换器93 8.2.4.图像切换器94 8.3 作为简单容器使用的视图组95 8.3.1.单选按钮组95 8.3.2.使用滚动条96 8.4 布局(Layout99 8.4.1.基本的布局内容99 8.4.2.线性布局(LinearLayout)100 8.4.3.相对布局(RelativeLayout)101 8.4.4.表单布局(Table Layout)103 8.5 网格(Grid)视图组103 8.6 列表(List)视图组107 8.7 使用Tab组织UI109 第9章 2D图形接口的使用113 9.1 使用2D图形接口的程序结构113 9.2 图像、图形、文本的基本绘制114 9.3 文本的对齐方式116 9.4 使用路径效果(PathEffect)118 9.5 剪裁效果119 9.6 记录绘制的过程121 9.7 动画效果123 第10章 OpenGL 3D图形的使用125 10.1 使用OpenGL图形接口的程序结构125 10.2 基本的绘制126 10.3 渲染器的实现127 10.4 3D动画效果的实现129

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值