标题图

UI的描述

对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的。View是绘制在屏幕上能与用户进行交互的一个对象。而对于ViewGroup来说,则是一个用于存放其他View和ViewGroup对象的布局容器!

viewgroup.png

Android为我们提供了View和ViewGroup的两个子类的集合,提供常用的一些输入控件(比如按钮,图片和文本域等)和各种各样的布局模式(比如线程布局,相对布局,绝对布局,帧布局,表格布局等)。

用户界面布局

在你APP软件上的,用户界面上显示的每一个组件都是使用层次结构View和ViewGroup对象来构成的,比如,每个ViewGroup都是不可见容器,每个ViewGroup视图组用于组织子视图View的容器,而它的子视图View可能是输入一些控件或者在某块区域的小部件UI。如果你有了层次结构树,你可以根据自己的需要,设计出一些布局,但要尽量简单,因为越简单的层次结构最适合性能。

要声明布局,可以在代码中实例化对象并构建,最简单的方法也可以使用xml文件。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="TextView" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button" />

在Android中提供了几个常用布局:

LinearLayout线性布局

RelativeLayout相对布局

FrameLayout帧布局

AbsoluteLayout绝对布局

TableLayout表格布局

GridLayout网格布局

描述一下几个重要的

线性布局:

指子控件以水平或垂直方式排列。

相对布局:

指子控件以控件之间的相对位置或子控件相对于父容器的位置排列。

帧布局:

指所有子控件均放在左上角且后面元素直接覆盖在前面元素之上。

绝对布局:

指子控件通过绝对定位x,y位置来决定其位置摆放。

表格布局:

指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。

图片

LinearLayout线性布局

常用属性:

id:为该组件添加一个资源id

orientation:布局中的排列方式,有两种方式:

horizontal水平

vertical竖直

layout_width:布局的宽度,用wrap_content表示组件的实际宽度,match_parent表示填充父容器

layout_height:布局的长度,用wrap_content表示组件的实际长度,match_parent表示填充父容器

gravity:控制组件所包含的子元素的对齐方式

layout_gravity:控制该组件在父容器里的对齐方式

background:为该组件添加一个背景图片

LinearLayout是一个视图组,可以在一个方向垂直或者水平分布所有子项,用android:orientation属性。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="输入账号" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="输入密码" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="登录" />

RelativeLayout相对布局

RelativeLayout是一个相对布局的视图组,用来显示相对位置的子视图类,在默认情况下,所有子视图对会分布在左上角。

layout_alignParentTop:为true,视图的上边界与父级的上边界对齐

layout_centerVertical:为true,将子类放置在父类中心

layout_below:将该视图放在资源ID下方

layout_toRightOf:将该视图放在资源ID右边

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="你的名字" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/name"

android:layout_alignParentRight="true"

android:text="正确" />

GridView网格布局

GridView其实是一个网格一样的视图组件,是一个ViewGroup的二维视图。用适配器可以将布局进行填充。

gridview.png

ListView列表组件

ListView是一个用于显示列表的可以滚动的视图组,列表项也可以用适配器进行添加内容的。

listview.png

结语

本文主要讲解 Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件

下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注

小礼物走一走 or 点赞

送❤

精通android布局,Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...相关推荐

  1. Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...

    UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...

  2. android linearlayout最大高度,Android中最简单最常用的LinearLayout线性布局

    原标题:Android中最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认为Relativ ...

  3. android关闭触摸提示音,Android取消和开启View或则ViewGroup点击带有提示音

    前言 如果系统设置[声音]选项中关闭了[触摸提示音],则所有的View都没有提示音. 开启系统设置[触摸提示音]基础上,View或ViewGroup设置setOnTouchListener()或者se ...

  4. Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  5. Android View系统分析之二View与ViewGroup

    目录 在Android View系统分析之从setContentView说开来(一)一文中,我们从setContentView开始阐述了Android中的视图层次,从设置内容布局到整个视图层次的建立的 ...

  6. android仿qq布局,Android自定义布局实现仿qq侧滑部分代码

    自定义布局实现仿qq侧滑部分android代码,供大家参考,具体内容如下 实现说明: 通过自定义布局实现: slidinglayout继承于 horizontalscrollview /** * cr ...

  7. Android开发之自定义View

    目录 一.View的简介 1.1 View的构造函数 1.2 View的绘制流程图 二.自定义View 2.1 onMeasure()方法 2.2 OnDraw()方法 一.View的简介 View类 ...

  8. Android 控件架构及View、ViewGroup的测量

    附录:示例代码地址 控件在Android开发的过程中是必不可少的,无论是我们在使用系统控件还是自定义的控件.下面我们将讲解一下Android的控件架构,以及如何实现自定义控件. 1.Android控件 ...

  9. 【Android 应用开发】自定义View 和 ViewGroup

    一. 自定义View介绍 自定义View时, 继承View基类, 并实现其中的一些方法. (1) ~ (2) 方法与构造相关 (3) ~ (5) 方法与组件大小位置相关 (6) ~ (9) 方法与触摸 ...

最新文章

  1. linux监听9080,基于UPnP发现与组播技术的IPTV终端实现
  2. java泛型(三)、通配符的使用
  3. 平板电脑办公软件_大屏平板互动软件-平板电脑触摸大屏控制软件
  4. 高等数学下-赵立军-北京大学出版社-题解-练习8.3
  5. c++ 暂停功能_苹果拥抱Rust,正在将C代码移植到Rust
  6. PyTorch绘制训练过程的accuracy和loss曲线
  7. Windows服务器提示密码过期怎么办?服务器密码过期会怎么样?
  8. 上海驾照科目三练习笔记
  9. 手机上怎么访问电脑html页面,手机UC浏览器怎么访问电脑版 访问电脑页面方法...
  10. 分享一个07版的office, 有密匙的。
  11. 社团在学生清华借教室流程
  12. 极简SSM框架【图书管理系统】
  13. MacOS操作系统使用-小白到熟练掌握
  14. 织梦SEO专题的制作与优化技巧
  15. 台达CH系列变频器带油电伺服电机调机笔记
  16. 大卫·贝克汉姆被任命为GEMFOREX的品牌大使
  17. python滑动窗口求回归——OLS和WLS
  18. 维护棋牌游戏服务器的几大关键点
  19. Scss或Less中:global{...}的作用
  20. comsol 稳态求解器1(sol1/s1)找不到解

热门文章

  1. 【攻防世界010】re1-100
  2. (27)TLB番外篇——ShadowWalker
  3. GetDiskFreeSpace 和 GetDiskFreeSpaceEx
  4. 【安全漏洞】ThinkPHP 3.2.3 漏洞复现
  5. 1.15 Java 9新增的不可变集合
  6. Tomcat启动一闪而过
  7. 如何将瀑布流里的图片加链接_「魔幻瀑布」180度全景接片+曝光合成!
  8. maven netty 配置_springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
  9. Spark DataFrame 添加自增id
  10. python:series一些函数用法