文章目录

  • 1. 用户界面概述
  • 2. View类常用属性
  • 3. ViewGroup类
  • 4. UI组件的层次结构

1. 用户界面概述

  • 在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的
  • View是绘制在屏幕上的用户能与之交互的一个对象。而ViewGroup则是一个用于存放其他View(和ViewGroup)对象的布局容器
  • Android还提供了一个View和ViewGroup子类的集合,集合中提供了一些常用的输入控件(比如按钮和文本域)和各种各样的布局模式(比如线性或相对布局)
  • View类位于android.view包中,即android.view.View;View类的子类一般都位于android.widget包中,即android.widget.TextView
  • 拿一个窗户做比喻,View代表玻璃,ViewGroup代表窗户中的窗户框,用来控制玻璃是怎么安放的,因此ViewGroup是用于控制View是如何摆放的
  • ViewGroup继承自View类,是View类的扩展,是用来容纳其他组件的容器,由于ViewGroup是个抽象类,所以一般使用ViewGroup的子类来作为容器

2. View类常用属性

(1)android:id属性
用于为组件设置一个唯一的标识

android:id="@+id/user"
解析:@+id/是固定写法,user是id值

(2)android:background属性
用于设置背景,属性值可以是图片资源,也可以是具体的颜色值

android:background="@mipmap/bg"
解析:图片资源需要先复制到 mipmap 目录当中,bg为图片名称android:background="#FF6600"
解析:#FF6600为颜色值

(3)android:padding属性
用于设置上下左右四个方向为一样的内边距

android:padding="16dp"
解析:设置上下左右四个方向的内边距都为16dpandroid:padding="@dimen/activity_margin"
解析:将属性值设置为一个尺寸资源的变量,需要先定义一个尺寸资源

用于设置上下左右四个方向为不一样的内边距,有如下四个属性
android:paddingTop、android:paddingBottom、android:paddingLeft、android:paddingRight

如果使用的API大于17,还可以使用android:paddingStart和android:paddingEnd表示左右内边距

3. ViewGroup类

ViewGroup控制其子组件分布时依赖的内部类
(1)ViewGroup.LayoutParams类
主要用来控制布局的位置,高度以及宽度
通常使用以下两个属性:
① android:layout_height ② android:layout_width
对于这两个属性的属性值,可以使用精确的数值进行设置,也可以如下一些常量来表示
FILL_PARENT:设置与父容器相同 (sdk版本在8之前)
MATCH_PARENT:设置与父容器相同 (sdk版本在8之后)
WRAP_PARENT:设置包裹其自身内容

(2)ViewGroup.MarginLayoutParams类
主要用来控制子组件的外边距

4. UI组件的层次结构

Android(四)——View和ViewGroup相关推荐

  1. 【Android】Android自定义View和ViewGroup知识点汇总

    一.View的绘制流程 onMeasure()->onDraw(). 二.ViewGroup的绘制流程 onMeasure()->onLayout()->onDraw()(一般不重写 ...

  2. Android基础——View和ViewGroup

    View和ViewGroup 什么是View? 什么是ViewGroup? 继承层次图 基本属性 常用ViewGroup介绍 线性布局 相对布局 帧布局 常用View介绍 TextView Butto ...

  3. Android 让View 和 ViewGroup 同时响应点击或者长按事件

    面试的时候,被问到如何让View 和 其 父View 同时响应长按事件. 我还记得当时自己的回答,子View 里面 处理了长按事件,但是返回了false, 没有处理,然后会继续调用到父View 的长按 ...

  4. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 四 | View 事件传递机制 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  5. Android自定义View:ViewGroup(三)

    自定义ViewGroup本质是什么? 自定义ViewGroup本质上就干一件事--layout. layout 我们知道ViewGroup是一个组合View,它与普通的基本View(只要不是ViewG ...

  6. Android自定义View的实现方法,带你一步步深入了解View(四)

    不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,算是把View中很多重要的知识 ...

  7. Android 自定义View(四)实现股票自选列表滑动效果

    一.前言 Android 开发过程中自定义 View 真的是无处不在,随随便便一个 UI 效果,都会用到自定义 View.前面三篇文章已经讲过自定义 View 的一些案例效果,相关类和 API,还有事 ...

  8. Android之View提升:四 使用ExpandableListView 折叠显示

    Android之view提升:四 使用ExpandableListView 折叠显示 组项布局 子项布局 自定义Adapter 继承 BaseExpandableListAdapter package ...

  9. Android自定义View的四种方式

    目录 一 前言 二 分类 1.组合控件 2.继承系统控件 3.继承View 4.继承ViewGroup 三 自定义View 1.构造函数 2.onMeasure 3.onLayout 4.onDraw ...

最新文章

  1. Spring Boot 集成Swagger2生成RESTful API文档
  2. 北邮 JAVA教程 张海旸 讲义
  3. 下一代超大规模软件定义网络技术实践
  4. 架构师之路 — API 经济 — RESTful API 设计规范原则
  5. 华为p4用鸿蒙系统吗_华为正式发布鸿蒙OS Beta版,网友:荣耀还能用上鸿蒙吗
  6. 赵英时遥感原理分析和应用课件_细数5种停车场防砸车技术原理分析与应用
  7. codeforces 546A-C语言解题报告
  8. 八皇后解法(回溯法)
  9. BZOJ1880:[SDOI2009]Elaxia的路线(最短路,拓扑排序)
  10. Microsoft Dynamics CRM MVP
  11. JVM学习04-垃圾回收概念与算法
  12. 安徽大学836数字电路与逻辑设计考研历年真题库资料
  13. 怎么购买虚拟主机合适?
  14. CMMI五个成熟度级别和对应22个过程域(PA)
  15. 串口转以太网服务器原理,串口服务器和串口转以太网模块的区别
  16. pyton对Quoted-printable进行编码和解码
  17. 罗技无线网卡linux,Linux(Ubuntu)装罗技LMS避坑指南
  18. 如果能理解医生的准确意图,深度学习会是医疗诊断的未来吗?
  19. 百度二年级手工机器人_小学二年级手工科技制作方案
  20. Flowplayer基于视频流的免费web视频播放器

热门文章

  1. python手写均值滤波器_python手写均值滤波
  2. svm的一些理解(网上收集)
  3. 世界对一名颓废者的惩罚——SDOI2019游记
  4. 电大法学本科计算机考试题,电大法学本科计算机形成性考核作业
  5. Maven安装与配置——手把手教程
  6. 当年的程序员,如今已是父母,七个方法让孩子爱上学习!
  7. mac 安装配置java环境变量
  8. 深度理解python中的元类
  9. XHProf报告字段含义
  10. CSS3基础03(3D②) 求粉丝