课程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),

这是外边距存在的前提。

![Fig1.Margin与Padding的对比](http://images2015.cnblogs.com/blog/1161127/201705/1161127-20170507221744632-1532325254.png)
**图1.Margin与Padding的对比**

1B课程笔记分享_StudyJams_2017的更多相关文章

  1. 1C课程笔记分享_StudyJams_2017

    课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...

  2. 1A课程笔记分享_StudyJams_2017

    1A课程 概述 课程1A主要讲解了Android UI的三种基本控件:TextView.ImageView以及Button.笔记的主体内容主要根据课程内容的讲解顺序来组织,此外我对一些个人比较感兴趣的 ...

  3. 3A课程笔记分享_StudyJams_2017

    课程3A-面向对象编程(上) 概述 面向对象的思想在当今的软件开发中占据着主导地位. Java是一门完全面向对象的语言,是一种天然的分布式互联网软件的开发语言,在当今企业级应用中占据绝对领先地位,也是 ...

  4. 2C课程笔记分享_StudyJams_2017

    课程2C-实践:创建交互式应用 概述 课程2C的内容主要是练习巩固2A.2B中讲解的内容,并设计实现一款篮球比赛的计分板应用及其界面的美化. Warm-Up:准备活动 新建项目PracticeSet2 ...

  5. 2B课程笔记分享_StudyJams_2017

    课程2B-创建交互式应用(下) 概述 课程2B的内容主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等. 后续的课程会逐步深入地讲解使用Java开发 ...

  6. 2A课程笔记分享_StudyJams_2017

    课程2A 概述 课程2A.2B的内容主要是关于创建交互式应用的基础知识.之前的L1课程主要是Android UI的基础设计知识,基本上没涉及到编程. 2A的讲解主要包括:使用变量来更新欲显示在屏幕上的 ...

  7. 3B课程笔记分享_StudyJams_2017

    昨晚才发现 Study Jams China的官方论坛也支持MarkDown,所以直接发在了那上面.http://www.studyjamscn.com/thread-21807-1-1.html

  8. L4课程_Firebase_笔记分享_StudyJams_2017

    最近才发现Study Jams China的官方论坛也支持MarkDown,所以就直接把笔记发在了那儿. http://www.studyjamscn.com/thread-21855-1-1.htm ...

  9. 深度学习课程笔记(一)CNN 卷积神经网络

    深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for I ...

随机推荐

  1. Leetcode 122.买卖股票的最佳时机II

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次 ...

  2. noip模拟赛 花

    [问题描述]商店里出售n种不同品种的花.为了装饰桌面,你打算买m支花回家.你觉得放两支一样的花很难看,因此每种品种的花最多买1支.求总共有几种不同的买花的方案?答案可能很大,输出答案mod p的值. ...

  3. hdu 2604 矩阵快速幂模板题

    /* 矩阵快速幂: 第n个人如果是m,有f(n-1)种合法结果 第n个人如果是f,对于第n-1和n-2个人有四种ff,fm,mf,mm其中合法的只有fm和mm 对于ffm第n-3个人只能是m那么有f( ...

  4. [bzoj2657][Zjoi2012]旅游 journey_ 对偶图_树形dp

    旅游 bzoj-2657 Zjoi-2012 题目大意:题目链接 注释:$1\le K\le 2\cdot 10^5$. 想法:这题... 感觉和上一个题的提示有些类似,就是题目生怕你不知道这是一道对 ...

  5. ubuntu各文件夹简介 [转载]

    原文地址:ubuntu各文件夹简介作者:SuperZhy ubuntu各文件夹简介 /bin 二进制可执行命令/dev 设备文件(硬盘/光驱等)/etc 系统管理和配置文件/etc/rc.d 启动的配 ...

  6. [Vue @Component] Pass Vue Render Functions as Props for Powerful Patterns

    Render functions open up a world of customization and control by using pure JavaScript rather than V ...

  7. Hadoop Yarn(一)—— 单机伪分布式环境安装

    HamaWhite(QQ:530422429)原创作品,转载请注明出处:http://write.blog.csdn.net/postedit/40556267. 本文是依据Hadoop官网安装教程写 ...

  8. 微软公有云Azure是惠及全人类的计算资源

    回归往事,1975年,微软以DOS创业.在随后的三十年中,微软给人类贡献了视窗操作系统Windows,至今,人们对桌面操作系统XP仍然不离不弃.可是,面对互联网的兴起.微软应该怎么办呢? 微软内部不乏 ...

  9. web中servletcontext和applicationContext

    参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletCo ...

  10. 解决:sql2005 安装完后 没有服务的问题

    去下面网站下载SQLEXPR_CHS.EXE然后安装就ok了.http://www.microsoft.com/downloadS/details.aspx?familyid=220549B5-0B0 ...