1B课程笔记分享_StudyJams_2017
课程1B
概述
- 课程1B主要讲解了Android UI的ViewGroups(视图组)、LinearLayout(线性布局)、RelativeLayout(相对布局),Portrait Mode(竖屏模式)、Landscape Mode(横屏模式)以及layout_weight(布局权重)在UI布局中的用处。
- 此外,本次课程简要提到了xml命名空间,能够方便变量名的管理和使用以及避免变量名字冲突。
ViewGroups
- 视图组控件引出了parent view、child view以及sibling view的概念;它们分别指的是两个视图间的父、子、兄弟关系,是一个相对概念,至少有两个对象参与。
- 需要注意的是,也是在1B课程中反复强调过的,ViewGroups本身也是一种视图。
LinearLayout
- 应用线性布局,首先应当设置布局中元素的朝向(orientation):具体的取值有vertical、horizontal,分别指定布局中元素按列排列和按行排列:
android:orientation="vertical"
android:orientation="horizontal"
RelativeLayout
- 相对布局中的控件中的默认位置是屏幕的最左上方。
- 相对布局并不需要android:orientation属性。
- 相对布局能够以指定相对位置的方式来设置布局中各元素(控件)之间的相对位置,交给开发者自由定制的空间远比LinearLayout大,当然相应地也会拥有更多属性,变得更复杂一些。
- 需要强调,在应用相对布局进行Android UI设计前,要能够理解相对布局中的"相对"在不同的代码上下文中可能会具有不同的含义。
比如,
1. ”相对“指的是相对于父视图:
android:layout_alignParentTop=“true”
android:layout_alignParentLeft="true"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
android:layout_centerHorizontal="false"
android:layout_centerVertical="false"
属性android:layout_centerHorizontal、android:layout_centerVertical也是相对于父视图的,分别设置控件位于父视图的水平居中以及垂直居中的位置。
2. ”相对“指的是相对于锚视图(anchor view):锚视图是固定的,其它视图可以指定与锚视图的相对位置。
android:layout_toLeftOf=“@id/some_id1_prev_defined”
android:layout_toRightOf=“@id/some_id2_prev_defined”
- [提示1] RelativeLayout的其他参数还有很多,搜索android RelativeLayout layout Params等关键字能够获取到关于相对布局的详细文档或者API参考手册。
开发者应该在平时注意锻炼自己查找资料,解决问题的能力,课程中介绍到的Android Developers就是很好的Android开发的参考网站。
Margin&Padding
- 外边距(Margin)、内边距(Padding)的概念在UI设计中很早就出现了。
- Padding控制单个控件内部元素和该控件边界之间的距离。
- 比如说,TextView中的文本与四周边界的距离的控制:
android:padding="8dp"
或者控制文本与某一边界之间的距离:
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
- Margin属性的使用的前提是,必须位于一个视图组中,否则就没有“外”边距的存在了。即外边距是相对两个父子(parent-child)控件之间而言的。
- 用外边距控制两个控件之间的相对位置:
android:layout_margin="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
第一个表达式与后四个的效果是等价,都是设置两个父子控件之间的**四周**的边距。
- Margin与Padding之间的对比
下面这张自己画的图应该能够比较清晰地示意二者的区别,蓝色方块是一个ViewGroups控件,也就是说它是绿色方块的父视图(Parent View),
这是外边距存在的前提。

**图1.Margin与Padding的对比**
1B课程笔记分享_StudyJams_2017的更多相关文章
- 1C课程笔记分享_StudyJams_2017
课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...
- 1A课程笔记分享_StudyJams_2017
1A课程 概述 课程1A主要讲解了Android UI的三种基本控件:TextView.ImageView以及Button.笔记的主体内容主要根据课程内容的讲解顺序来组织,此外我对一些个人比较感兴趣的 ...
- 3A课程笔记分享_StudyJams_2017
课程3A-面向对象编程(上) 概述 面向对象的思想在当今的软件开发中占据着主导地位. Java是一门完全面向对象的语言,是一种天然的分布式互联网软件的开发语言,在当今企业级应用中占据绝对领先地位,也是 ...
- 2C课程笔记分享_StudyJams_2017
课程2C-实践:创建交互式应用 概述 课程2C的内容主要是练习巩固2A.2B中讲解的内容,并设计实现一款篮球比赛的计分板应用及其界面的美化. Warm-Up:准备活动 新建项目PracticeSet2 ...
- 2B课程笔记分享_StudyJams_2017
课程2B-创建交互式应用(下) 概述 课程2B的内容主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等. 后续的课程会逐步深入地讲解使用Java开发 ...
- 2A课程笔记分享_StudyJams_2017
课程2A 概述 课程2A.2B的内容主要是关于创建交互式应用的基础知识.之前的L1课程主要是Android UI的基础设计知识,基本上没涉及到编程. 2A的讲解主要包括:使用变量来更新欲显示在屏幕上的 ...
- 3B课程笔记分享_StudyJams_2017
昨晚才发现 Study Jams China的官方论坛也支持MarkDown,所以直接发在了那上面.http://www.studyjamscn.com/thread-21807-1-1.html
- L4课程_Firebase_笔记分享_StudyJams_2017
最近才发现Study Jams China的官方论坛也支持MarkDown,所以就直接把笔记发在了那儿. http://www.studyjamscn.com/thread-21855-1-1.htm ...
- 深度学习课程笔记(一)CNN 卷积神经网络
深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for I ...
随机推荐
- lnmp的安装--nginx
1.nginx的安装 安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装安 ...
- noip模拟赛 蒜头君的排序
分析:其实就是求m个区间的逆序对个数,题目真的是明摆着让我们用莫队算法,套用树状数组就可以了. 具体怎么转移呢?如果移动R,那么对区间[l,r]有影响的是R左边的元素,我们只需要看有多少在R左边比a[ ...
- [K/3Cloud] 表单python脚本使用QueryService的做法
听说有些朋友想在表单里做自定义的界面数据处理,一般来说写个表单插件会很容易解决这类问题.但是鉴于C#插件开发的不便性和实施搭建开发环境的麻烦,在现场做C#开发可能会不太方便(没部署开发环境之类的问题) ...
- [Usaco2015 dec]Max Flow
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 204 Solved: 129[Submit][Status][Discuss] Descriptio ...
- Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
当想使用docker安装Jupyter Notebook时,有一个很好的项目是docker-stacks(https://github.com/jupyter/docker-stacks/tree/m ...
- 鸟哥的Linux私房菜-----10、学习Bash
- LeetCode 67. Add Binary (二进制相加)
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- BestCoder Round #59 (div.2) B. Reorder the Books 想法题
Reorder the Books 问题描述 dxy家收藏了一套书,这套书叫<SDOI故事集>,<SDOI故事集>有n(n\leq 19)n(n≤19)本,每本书有一个编号,从 ...
- What is an ISAPI Extension?
https://www.codeproject.com/Articles/1432/What-is-an-ISAPI-Extension Introduction Unless you have be ...
- js的类库
prototype.js https://github.com/sstephenson/prototype moment js https://github.com/moment/moment thr ...