当前位置: 首页 > article >正文

Android中级控件

文章目录

      • 图形定制
        • 1.图形Drawable
        • 2.形状图像
        • 3.九宫格图片
        • 4.状态列表图形
      • 选择按钮
        • 1.复选框CheckBox
        • 2.开关按钮Switch
        • 3.单选按钮
      • 文本输入
        • 1.编辑框EditText
        • 2.焦点变更监听器
        • 3.文本变化监听器
      • 对话框
        • 1.提醒对话框
        • 2.日期对话框DatePickerDialog
        • 3.时间对话框TimePickerDialog

图形定制

1.图形Drawable
2.形状图像
  • Shape图形又称为形状图形,它用来描述常见的几何形状,包括矩形、圆角矩形、圆形、椭圆等。
  • 形状图形的定义文件是以shape标签为根节点的XML描述文件,它支持四种类型的形状:rectangle(矩形)、oval(椭圆)、line(直线)、ring(圆环)
3.九宫格图片
4.状态列表图形

状态列表图形不仅用于按钮控件,还可用于拥有多种状态的控件。

状态类型的属性名称说明适用的控件
state_pressed是否按下按钮Button
state_checked是否勾选复选框CheckBox、单选按钮RadioButton
state_focused是否获取焦点文本编辑框EditText
state_selected是否选中各控件通用

选择按钮

1.复选框CheckBox
<?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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".CheckBoxActivity">


    <CheckBox
        android:id="@+id/ck_system"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="系统的CheckBox"/>


    <CheckBox
        android:id="@+id/ck_custom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:button="@drawable/checkbox_selector"
        android:layout_marginTop="5dp"
        android:checked="true"
        android:text="这个CheckBox换了图标"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/check_choose" android:state_checked="false"/>

    <item android:drawable="@drawable/check_unchoose" android:state_checked="true"/>
</selector>
2.开关按钮Switch

Switch是开关按钮,它在选中与取消选中时可展现的界面元素比复选框丰富。
Switch空间新添加的XML属性说明如下:

  • textOn:设置右侧开启时的文本
  • textOff:设置左侧关闭时的文本
  • track:设置开关轨道的背景
  • thumb:设置开关标识的图标
3.单选按钮

单选按钮要在一组按钮中选择其中的一项,并且不能多选,这要求有个容器确定这组按钮的范围,这个容器便是单选组RadioGroup
RadioGroup实质上是个布局,同一组RadioButton都要放在同一个RadioGroup节点下,除了RadioButton,也允许放置其他控件。

<RadioGroup
        android:id="@+id/rg_gender"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rb_male"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text=""/>


        <RadioButton
            android:id="@+id/rb_female"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text=""/>

    </RadioGroup>

判断选中了哪个单选按钮,通常不是监听某个单选按钮,而是监听单选组的选中事件。

  • check:选中资源编号的单选按钮
  • getCheckedRadioButtonId:获取选中状态单选按钮的资源编号、
  • setOnCheckedChangeListener:设置单选按钮勾选变化的监听器

文本输入

1.编辑框EditText

编辑框EditText用于接收软键盘输入的文字,例如用户名、密码、评价等,它由文本视图派生而来,除了TextView已有的各种属性和方法,EditText还支持下列XML属性。

  • inputType:指定输入的文本类型
  • maxLength:指定文本允许输入的最大长度
  • hint:指定提示文本的内容
  • textColorHint:指定提示文本的颜色
2.焦点变更监听器
3.文本变化监听器

调用编辑框对象的addTextChangeListener方法即可注册文本监听器
文本监听器的接口名称为TextWatcher,该接口提供了3个监控方法:

  • beforeTextChanged:在文本改变之前触发
  • onTextChanged:在文本改变过程中触发
  • afterTextChanged:在文本改变之后触发

对话框

1.提醒对话框
  • AlertDialog可以完成常见的交互操作,例如提示、确认、选择等功能。AlertDialog借助建造器AlertDialog.Builder才能完成参数设置。

  • 调用建造器的create方法生成对话框实例,再调用对话框实例的show方法,在页面上弹出对话框。

2.日期对话框DatePickerDialog
3.时间对话框TimePickerDialog
  • 时间选择器TimePicker可以让用户选择具体的小时和分钟
  • TimerPickerDialog的用户类似DatePickerDialog

http://www.kler.cn/news/327945.html

相关文章:

  • Fivetran+Milvus:AI搜索新时代的数据迁移利器
  • 学习记录:js算法(五十):二叉树的右视图
  • 【Preference Learning】Reasoning with Language Model is Planning with World Model
  • mysql学习教程,从入门到精通,SQL 表、列别名(Aliases)(30)
  • Spring Boot框架在甘肃非遗文化网站设计中的运用
  • ubuntu配置python环境
  • 深度学习基础及技巧
  • Linux性能调优技巧
  • 汽车零部件开发流程关键阶段
  • PowerShell无法执行yarn命令
  • Qt_线程介绍与使用
  • Wpf Image 展示方式 图片处理 显示
  • 828华为云征文|华为云 Flexus X 实例初体验
  • 选择更轻松:山海鲸可视化与PowerBI的深度对比
  • MATLAB在无线通信标准与协议支持中的作用
  • 打造未来社交:区块链社交DAO的颠覆性开发之路
  • 2.1 HuggingFists系统架构(一)
  • Go 项目开发常用设计模式
  • OpenCV图像文件读写(1)检查 OpenCV 是否支持某种图像格式的读取功能函数haveImageReader()的使用
  • Python FFmpeg 安装使用教程
  • SQL第10课挑战题
  • C# 泛型使用案例_C# 泛型使用整理
  • vue 项目打包更新后,界面未刷新时js与css资源加载404,监听资源文件404后自动重新加载页面。
  • 解决 Macos下 Orbstack docker网络问题
  • 【工具-VMware Workstation-ubuntu】
  • UDP通信
  • Linux 如何检测一个程序的最大内存使用值?
  • 普通人未来还有哪些赚钱机会?
  • JAVA JVM常见面试题
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建