初学Android Studio,是在b站看的教程视频,这里的笔记也是以其为基础的,个人强烈安利:

【天哥】Android开发视频教程最新版 Android Studio开发

Android 布局简介

可以把界面设计看作是,让各个控件都摆放得有条不紊,各得其所。布局就相当于放置控件的容器,通过控制布局参数,可以按照一定规律调整内部控件的位置。

一个丰富的Android界面由UI控件和结构化布局对象组成。

常见布局可分为以下几类:

  • 线性布局(LinearLayout)
  • 相对布局(RelativeLayout)
  • 表格布局(TableLayout)
  • 网格布局(GridLayout)
  • 帧布局(FrameLayout)

此外,还有基本不会使用的绝对布局(AbsoluteLayout)和采用可视化界面拖拽控件的约束布局(ConstraintLayout)

布局至少需要设置的属性为android:layout_widthandroid:layout_height

分别控制布局的宽度和高度,一般填入的参数为match_parent[1]和wrap_content[2],如果有需要也可填入具体尺寸

下面介绍线性布局和相对布局的几个特有属性。

线性布局

  • LinearLayout用于使所有子视图在单个方向(垂直或水平)保持对齐,方向由android:orientation决定,默认值为vertical(垂直),可改为horizontal(水平)

  • 若需要让子元素使用大小不同的屏幕空间 ,可设置权重划分属性 android:layout_weight,规则是控件先按占用设置的宽度或高度,剩余的宽度或高度按设置权重相应的比例来分配。

相对布局

  • RelativeLayout 用于以相对位置显示子视图。可以指定为相对于同级元素定位(例如在另一个视图的左侧或下方)或相对于父级区域定位(例如在左侧、底部或中心对齐)

  • margin与padding的区别:

    margin代表的是偏移,针对的是容器中的组件

    padding代表的则是填充,针对的是组件中的元素

  • gravity类似于Word里面的设置文字对齐方式,可以设置容器内组件的对齐方式,

线性布局比较适合所有控件都是整齐排列的页面,加载速度较慢。

相对布局可以按照自己的想法来放置控件的位置,但写起来比较麻烦,需要自己考虑好所有控件的的布局。

代码说明

简单分析下布局文件xml中的开头:

<?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"
...

version="1.0":声明用的xml版本是1.0

encoding="UTF-8":声明用xml传输数据使用的字符编码为UTF-8。(UTF-8可传中文)

下面是三个同样的句式,xmlns:namespace-prefix="namespaceURI"

xmlns:保留字xml namespace的缩写,意思是xml命名空间

namespace-prefix:命名空间前缀

namespaceURI:命名空间唯一标识符 URI[3]

xmlns:android="http://schemas.android.com/apk/res/android"

声明这个命名空间引用自Android系统

xmlns:app="http://schemas.android.com/apk/res-auto"

导入自定义控件的一些属性或者support支持包

xmlns:tools="http://schemas.android.com/tools"

用于调试预览,打包为apk的时候所有tools添加的属性都会被摒弃,方便进行页面调整

图片来自——Android布局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473

本来打算做个demo演示一下的,考虑到控件还没写,放到后面的部分吧....

参考资料

  1. Google 安卓开发者指南 布局部分

    https://developer.android.google.cn/guide/topics/ui/layout

  2. Android开发的常用布局

    <https://zhuanlan.zhihu.com/p/87343947 >

  3. Android Studio中match_parent和wrap_content的区别https://blog.csdn.net/qq_38900441/article/details/83420480

  4. Android线性布局和相对布局的详解和区别https://blog.csdn.net/weixin_40783315/article/details/83589369

  5. RelativeLayout(相对布局)|菜鸟教程

    https://www.runoob.com/w3cnote/android-tutorial-relativelayout.html

  6. <?xml version="1.0" encoding="utf-8"?>的作用

    https://www.cnblogs.com/neil-/p/5416337.html

  7. Why this line xmlns:android="http://schemas.android.com/apk/res/android" must be the first in the layout xml file?

    http://www.it1352.com/79986.html

  8. Android布局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473

  9. Android布局理解之xmlns

    https://www.jianshu.com/p/accb46a12a53


  1. 匹配父布局,也就是由父布局来决定当前控件的大小 ↩︎

  2. 包含内容,也就是由控件内容决定当前控件的大小 ↩︎

  3. A Uniform Resource Identifier (URI) is a string of characters which identifies an Internet Resource.The most common URI is the Uniform Resource Locator (URL) which identifies an Internet domain address. Another, not so common type of URI is the Universal Resource Name (URN).因此这里看似一个网址(URL),实际上相当于一个固定值(常量),不可访问 ↩︎

Android Studio 学习笔记(二):布局简介和xmlns说明的更多相关文章

  1. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  2. Android Studio 学习笔记(四):Adapter和RecyclerView说明

    在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解. MV ...

  3. Android Studio 学习笔记1.1 创建自己的第一个安卓项目并且打包APK

      自从上一次安装完安卓开发工具Android Studio后抽时间看视屏尝试编写自己的第一个安卓项目约两周的时间 每天下班后会花上1~2小时的时间去学习 目前的成果如下:次元宅的我.apk 嘛 总而 ...

  4. Android Studio 学习笔记(五):WebView 简单说明

    Android中一个用于网页显示的控件,实际上,也可以看做一个功能最小化的浏览器,看起来类似于在微信中打开网页链接的页面.WebView主要用于在app应用中方便地访问远程网页或本地html资源.同时 ...

  5. Android Studio学习笔记

    转:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1 背景 相信大家对Android Studio已经不陌生了,An ...

  6. Android Studio 学习笔记(1)

    最近从Eclipse转到Android Studio IDE,很多东西需要学习,本文是个记录. 项目结构 在Anroid Studio 中,一个Project 包括多个Module,每个Module下 ...

  7. Android Studio 学习笔记(三):简单控件及实例

    控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...

  8. android菜鸟学习笔记6----android布局(一)

    Android应用的UI组件都是继承自View类,View类表示的就是一个空白的矩形区域.常用的组件如TextView.Button.EditText等都直接或间接继承自View. 此外,View还有 ...

  9. android菜鸟学习笔记7----android布局(二)

    3.FrameLayout:帧布局 如同Flash或者photoshop中图层的概念,在上面的图层遮盖下面的图层,没被遮到的地方仍然显示出来. 右击res/layout,然后在弹出的菜单中选择new, ...

随机推荐

  1. 【转】13个JavaScript图表(JS图表)图形绘制插件

    现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...

  2. HTTP1.1

    读了一本图解http,总结一下子. 1 .重要的头部   1.TCP/IP 通信传输流 五层模型 先盗个图,重点说明每过一层都会加个头,头很重要啊!其中https 就是在传输层搞事,把本来明文的数据包 ...

  3. .net Core 使用IHttpClientFactory请求

            导读:本文已添加在晨曦微服务之旅,现在自己在尝试微服务架构,一边学边做项目快速的进入状态.当然在学习的过程中会将自己学到的知识进行分享. 一.为什么不用HttpClient       ...

  4. WiFi模块Demo(新手教程)图文详解模块使用教程

    本文出自APICloud官方论坛,感谢论坛版主 Mr.ZhouHeng 的分享. 第一步我们需要在开发控制台创建一个Native App应用以及添模块的准备工作: 按照下图步骤 输入完点创建完成之后 ...

  5. 云原生 - 体验Istio的完美入门之旅(一)

    作者:justmine 头条号:大数据达摩院 微信公众号:大数据处理系统 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便大家阅读,可以关注头条号或微信公众号,后 ...

  6. request session

    例子 url = 'http://beanhome.com/user/login' header = { "Content-Type": 'application/json', & ...

  7. Java单体应用 - Markdown - 03.高级技巧

    原文地址:http://www.work100.net/training/monolithic-markdown-advance.html 更多教程:光束云 - 免费课程 高级技巧 序号 文内章节 视 ...

  8. 关于<Java 中 RMI、JNDI、LDAP、JRMP、JMX、JMS那些事儿(上)>看后的一些总结-1

    原文地址:https://www.anquanke.com/post/id/194384#h3-3 1.java rmi 关于rmi客户端和服务端通信的过程,java的方法都实现在rmi服务端,客户端 ...

  9. Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  10. 【javaScript】报getElementId()为Null的错误

    若JavaScript代码写在<head>块中,若是javaScript,写JavaScript代码写在里面 window.οnlοad=function(){ js代码内容 } 若是jq ...