常用UI控件

  • 简介

    • 这一篇介绍开发中的常用UI控件。
  • 布局管理器
    • 所有布局管理器都是ViewGroup的子类,都可作为容器类使用。继承自View,所以也可嵌套。
    • 常见的布局之前已经提到了三种,这里不再提,只需要知道,它一般作为控件的容器,利用布局管理器方便布局的开发。
  • TextView及其子类
    • Textview文本框

      • 显示文本内容的文本区域,不可编辑。
    • EditText编辑框
      • 显示文本内容,可编辑修改。
    • Button按钮
      • 可点击的一个按钮,点击触发onclick事件,其实是TextView的点击实现。在开发中,无论装饰得多么花哨,很多控件的本质依然是Button。
      • RadioButton:单选按钮,一般和RadioGroup一起使用组成选项组
      • CheckBox:复选按钮
      • ToggleButton:状态开关按钮
      • Switch:开关
    • Clock钟
      • TextClock:取代DigitalClock组件,能以24/12 小时制来显示时间,数字。
      • AnalogClock:继承自View组件,overwrite了View的OnDraw方法,它会在View上绘制模拟时钟。使用这个控件IDE加底线,表示不建议使用了。
    • Chronometer计时器
      • 倒计时。
    • 代码测试
      •   <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zc.helloworld.MainActivity"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个TextView"/><EditTextandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个EditText"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个Button"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个RadioButton"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个CheckBox"/><ToggleButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content" /><Switchandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个Switch"/><TextClockandroid:layout_width="wrap_content"android:layout_height="wrap_content" /><AnalogClockandroid:layout_width="wrap_content"android:layout_height="wrap_content" /><Chronometerandroid:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout>
        
    • 演示结果
  • ImageView及其子类
    • 继承自View,显示图片。
    • ImageButton图片按钮
      • 图片按钮,可触发。
    • QuickContactBadge关联联系人图片
      • 显示关联到特定联系人的图片。
    • ZoomButton图片缩放按钮
      • 代表”放大”、”缩小”两个按钮。(需要代码控制)
    • 代码测试
      •   <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zc.helloworld.MainActivity"android:orientation="vertical"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><ImageButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><QuickContactBadgeandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><ZoomButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/></LinearLayout>
        
    • 演示结果
  • AdapterView及子类
    • 本身是一个抽象基类,继承了ViewGroup,它的本质是容器,它无法直接使用,是一种自动适配的容器。
    • Listview列表视图
      • 垂直显示列表内容的控件。
    • Adapter适配器
      • 用内容填充列表视图。
    • AutoCompleteTextView自动完成文本框
      • AutoCompleteTextView由Editext派生,实际上它也是一个编辑框,但它比普通编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供用户从中选择。
    • GridView网格视图
      • 类似于ListView,但是多列。
    • ExpandableListView可展开的列表组件
      • 列表项分组。
    • 这一部分均需要适配器,后面博客提到,就不演示了。
  • ProgressBar及其子类
    • ProgressBar进度条

      • 进度条通常用于向用户显示一个百分比。进度条可以动态地显示进度,避免用户死等的尴尬状态。用颜色填充表明进度。
    • SeekBar拖动条
      • 拖动条和进度条非常相似,通过滑块的位置来标识数值,允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,亮度调节的底层就是它。
    • RatingBar星级评分条
      • 允许用户通过拖动来改变进度,不过RatingBar通过星星来表示进度。
    • 代码测试
      •   <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zc.helloworld.MainActivity"android:orientation="vertical"><ProgressBarandroid:layout_width="match_parent"android:layout_height="wrap_content" /><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content" /><RatingBarandroid:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>
        
    • 演示结果
  • 对话框
    • 以下对话框均需要具体代码实现逻辑,后面介绍,这里只演示效果。
    • AlertDialog弹出对话框
      • 功能最丰富、实际应用最广的对话框
    • ProgressDialog进度条对话框
      • 进度条对话框、这个对话框只是对进度条的包装
    • DatePickerDialog日期选择对话框
      • 日期选择对话框,这个对话框只是对DatePicker的包装
    • TimePickerDialog时间选择对话框
      • 时间选择对话框,这个对话框只是对TimePicker的包装。
    • 代码测试
      • 一般代码控制弹出,演示需要,我让它显示出来了。
      •   <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zc.helloworld.MainActivity"android:orientation="vertical"><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content" /><TimePickerandroid:layout_width="wrap_content"android:layout_height="wrap_content"></TimePicker><TimePickerandroid:layout_width="wrap_content"android:layout_height="wrap_content"></TimePicker></LinearLayout>
        
    • 演示结果
  • 菜单(Menu)
    • Android提供了两种创建菜单的方式,一种是代码创建,一种是使用xml资源文件定义。推荐后者,即用xml文件方式,可以减少代码量。
    • 一般而言,菜单资源文件放在res目录的menu目录下(没有规定,但约定俗成),其xml文件的根元素通常是<menu…/>,不需要指定任何属性。
      • 资源文件内容:

        • <item…/> 元素:定义菜单项
        • <group…/>子元素:将多个<item…/>定义的菜单项包装成一个菜单组。
      • 在文件中定义了菜单资源后,必须重写onCreateOptionsMenu(),onCreateContextMenu() 方法,在这些方法中调用MenuInflater对象的inflate方法(填充器填充)使用指定资源文件对应的菜单就可以了。
  • 活动条( ActionBar )
    • 安卓3.0出现,位于传统的标题栏的位置,也就是显示在屏幕的顶部。其上一般显示App的图标和Activity标题。除此之外,ActionBar的右边海可以显示活动项( Action Item )。
    • 但是我们一般不使用这种,所以我在前面的博客都是NoActionBar。
  • Toast信息提示
    • 显示提示信息,如今的APP中最常见的是“再点击一次退出”。(开发是用于事件是否成功的测试)
    • 代码测试
      •   package com.zc.helloworld;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Button btn;private Context context;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.btn);context = this;btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(context,"安卓",Toast.LENGTH_LONG).show();}});}}
        
  • SearchView搜索框
    • 可以让用户在文本框输入文字,通过监听器监控用户输入,当用户输入完成后提交搜索,也可通过监听器执行实际的搜索功能实现。
    • 代码测试
      •   <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zc.helloworld.MainActivity"android:orientation="vertical"><SearchViewandroid:layout_width="match_parent"android:layout_height="wrap_content"></SearchView></LinearLayout>
        
  • Fragment碎片
    • 3.0版本引入了Fragment功能,类似于Activity,可以像Activity一样包含布局。 不妨认为Fragment是一种轻量级的Activity,引入Fragment后,一个屏幕下布局更有了定制性和扩展性。曾今麻烦的多标签实现有了更方便的用法。
    • 这是一个相当常用的控件,很多实现都是基于它。
    • 例如QQ的底部菜单,美团外卖的底部菜单导航。
  • 补充说明
    • 具体代码可以在我的Github找到,欢迎star或者fork

安卓入门系列-07常用UI控件(长文)相关推荐

  1. 【cocosStdio系列】之UI控件下

    [cocosStdio系列]之UI控件下       大家好,我是Lampard       今天与大家通过一个demo了解cocos给我们提供的各个UI控件 reference:<cocos2 ...

  2. Android开发 入门篇(二) - 常用UI控件

    文章目录 控件 Button TextView EditText ImageView ProgressBar AlertDialog ProgressDialog 布局 LenearLayout an ...

  3. IOS 常用UI控件

    目录 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 具体内容 下拉刷新 EGOTableViewPullRefresh ...

  4. 【cocoStdio系列】之UI控件中

    [cocosStdio]之UI控件(中)       大家好,我是Lampard       今天与大家通过一个demo了解cocos给我们提供的各个UI控件 reference:<cocos2 ...

  5. ios 设置属性的center_IOS开发-常用UI控件的基本使用(Transform形变属性、frame属性、center属性的使用)...

    3. disabled(失效状态,不可用状态) 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击,默认情况是可以点击的. 对应的枚举常量:UIControlStateDi ...

  6. 一些常用UI控件汇总

    1.标签控件 UIlable 作用:显示文本 常用属性: (1).lineBreakMode //label宽度不够时,对文本的打断方式,默认为打断文本尾部 (2).shadowColor //设置l ...

  7. 常用UI控件之UIControl

    1.UIControl概述 UIControl继承于UIView,其子类 有:UIButton,UITextField,UISegmentedControl(分段控件),UISlider (滑块控件) ...

  8. android ui新控件,android_常用UI控件_01_TextView3_点击打开新的activity

    点击textview打开新的activity (1) MainActivity.javapackage com.example.android_textview_opennewactivity; im ...

  9. UI控件库分享:DWZ(j-UI)、LigerUI、Linb

    DWZ(j-UI): 在线演示地址:http://demo.dwzjs.com 在线文档:http://demo.dwzjs.com/doc/dwz-user-guide.pdf DWZ框架Ajax开 ...

最新文章

  1. linux 下的lamp的简单安装
  2. 《Imperfect C++中文版》——第2章 对象生命期
  3. 【Python】学习笔记总结8(经典算法)
  4. 我的四轴专用PID参数整定方法及原理
  5. html table nei边框线,GitHub - meichuanneiku/TableCell: 在TableBank的基础上,进一步标注到单元格精度,利用目标检测/分割实现单元格定位。...
  6. 打印机显示发送任务到服务器失败,G-FAX单机版操作指引-AOFAX—传真服务器.DOC
  7. 尝试对知乎网验证码进行处理:
  8. 吴恩达深度学习 —— 4.7 参数 vs. 超参数
  9. python操作mysql中的表_带你了解什么是Python操作MySQL数据库
  10. 【声源定位】基于matlab不同空间谱估计的声源定位算法比较【含Matlab源码 545期】
  11. 0的ascii码值(0的ascii码值)
  12. Android 平台 Native 代码的崩溃捕获机制及实现
  13. 如何申请免费SSL证书?宝塔面板SSL证书安装部署完整教程
  14. 教大家做蛋黄酥的做法
  15. phpstorm主题下载地址及安装
  16. 牛客题——点击消除(go)
  17. Stochastic Depth ResNet
  18. ffmpeg批量从视频中提取出mp3音频
  19. BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历
  20. 基于百度飞浆平台(EasyDL)设计的人脸识别考勤系统

热门文章

  1. Mapper 接口无法注入或Invalid bound statement (not found)
  2. Spring 事务API 架构图
  3. ActiveMQ跟SpringBoot整合的双向队列
  4. 角色关联权限操作-代码实现
  5. ES6新特性之转码器(UmiJS入门)
  6. HTTP_请求消息_请求行
  7. MySQL复制性能优化
  8. spring的aop配置-配置将通知织入目标对象
  9. 字符之间或者结构体之间比较
  10. 解决ssh远程连接错误问题