GUI==>Graphics User Interface,图形用户界面。

android UI 建立在View、ViewGroup基础上,采用组合器设计模式设计View和ViewGoup.

ViewGroup是View的子类,ViewGroup也可以被当中View使用。对于View而言,其是所有UI组件的基类,因此其包含的XML属性和方法是所有组件都可以使用的。

注意:

  可参考SDK安装目录下,docs子目录下,单击Index.html页面学习,主要页签内容Dev Guide、Reference

fill_parent==>指定组件的高度、宽度、和父容器的相同(实际上需要减去填充的空白区域);

match_parent==>该属性和fill_parent属性作用一致,从android2.2开始推荐使用match_parent代替fill_parent属性;

1.使用XML布局文件控制UI

==》

  setContentView(R.Layout.资源文件名称);Eg:setContentView(R.Layout.main);

  findViewById(R.id.id属性值),Eg:findViewById(R.id.main);

注意:android也支持通过代码的形式控制UI布局等,但不建议使用。

2.开发自定义View

==》

定义一个继承自View基类的子类,重写View基类的一个或者多个方法,实现自定义View的功能。

通常支持的重写方法如下:(参考疯狂android讲义)

  

3.布局管理器

==》推荐使用其完成组件的分布、大小管理,并非直接设置组件的大小...

布局管理器可以根据允许平台调整组件的大小。所有布局都可以作为容器使用。

LinearLayout——线性布局

LinearLayout线性布局,可以通过设置android:orientation属性,控制其纵向排列或者横向排列。

注意:android:gravity属性中的多个属性值之间用竖线隔开,但竖线之间不能存在空格。

TableLayout

==>

表格布局,采用行列的形式管理UI组件。TableLayout不需要明确声明需要几行几列,通过添加TableRow、其他控件来控制表格的行数和列数。

一个TableRow代表一行,TableRow本身也是容器——可以添加其他组件(每添加一个子组件代表添加一列);

直接在TableLayout添加组件,代表组件直接占用一行;

在表格布局中列的宽度由列中最宽的组件决定;整个表格布局的宽度取决于父容器的宽度。

表格布局中,单元格可设置为三种方式,如下:

  Shrinkable==>如果某列被设为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度。

  Stretchable==>如果某列被设为Stretchable,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填充表格空余空间。

  Collapsed==>如果某列被设为Collapsed,妈么该列的所有单元格会被隐藏

注意:TableLayout继承了LinearLayout,因此其支持LinerarLayout支持的所有属性;多个列设置可用“,”分割,Eg:android:stretchColumns="1,2";==>表示第二、第三列可被拉伸...;

   索引从“0” 开始;

     列可以同时具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将“多行”显示其内容。(这里不是真正的多行,而是系统根据需要自动调节该行的layout_height)

  

   android:layout_column    指定该单元格在第几列显示

android:layout_span        指定该单元格占据的列数(未指定时,为1)

示例:
android:layout_column="1"    该控件显示在第1列
android:layout_span="2"        该控件占据2列
说明:一个控件也可以同时具备这两个特性。

表格布局常用的属性如下:
android:collapseColumns:隐藏指定的列
android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列填充空白部分
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数

FrameLayout==>帧布局

FrameLayout布局管理继承了ViewGroup组件,帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。

FrameLayout是最简单的布局了。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。

.....

RelativeLayout==>相对布局

相对布局中容器中的组件位置是相对其他组件、父容器而定。

相对布局是按照组件之间的相对位置来布局,比如在某个组件的左边,右边,上面和下面等...

AbsoluteLayout ==>绝对布局,不建议使用

......

android学习笔记三的更多相关文章

  1. Android学习笔记三:用Intent串联activity

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7513399.html 一:Intent Intent可以理解为 意图. 我们可以通过创建intent实例来定义 ...

  2. android学习笔记三--Activity 布局

    1.线性布局 标签 :<LinearLayout></LinearLayout> 方向:android:orientation, 垂直:vertical 水平:Horizont ...

  3. Android学习笔记(三)

    ContentProvider简单介绍 ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序须要把自己的数据暴露给其它程序使用时.该应用程序便可通过提供Conten ...

  4. 【转】Pro Android学习笔记(三十):Menu(1):了解Menu

    目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...

  5. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  6. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  7. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  8. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  9. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

随机推荐

  1. eclipse ERROR: Unable to add module to the current project as it is not of ...

    原因: Workspace下放了个POM文件,造成了M2eclipse插件的误解. 解决方案: 删掉就OK了.

  2. UI学习笔记---第一天

    一.iOS概述 iOS是Apple公司的移动操作系统,主要⽤用于iPhone.iPad.iPad Mini.iPod Touch等移动产品. 借助iOS,我们可以开发视频类.美图类.新闻类.⾳乐类.团 ...

  3. 学习iOS笔记第一天的C语言学习记录

    c语言基础学习 int num1 = 15; int num2 = 5; int temp = 0; //先把num1放到temp里 temp = num1; //先把num2放到num1里 num1 ...

  4. abap程序修改程序

    *&———————————————————————**& Report ZHELI_CODE*&*&———————————————————————**&*&am ...

  5. Codeforces Round #366 (Div. 2) C 模拟queue

    C. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  6. ZOJ 1241 Geometry Made Simple

    /*Mathematics can be so easy when you have a computer. Consider the following example. You probably ...

  7. spring mvc显示图片(个人记录)

    @ResponseBody @RequestMapping(value = {"/",""}, method = RequestMethod.GET, prod ...

  8. JAG Practice Contest for ACM-ICPC Asia Regional 2016

    2016弱校联盟十一专场10.3 传送门 B. Help the Princess! 计算皇后和士兵谁先到达出口即可. C. We don't wanna work! 两个优先队列维护工作中积极性最小 ...

  9. 英语语法最终珍藏版笔记-17名词性-主语-宾语-同位语-表语-that从句

    名词性从句 在主从复合句中,从句可以充当主句的主语.表语.宾语或同位语.由于在多数情况下,主语.表语.宾语或同位语这四种句子成分由名词性词类充当,所以,我们把这些作用相当于名词的从句统称为名词性从句, ...

  10. 关于MSP430中断机制

    中断很大程度上体现了一款单片机的性能,从这一点将MSP430在中断方面做得很不错,主要是提供了非常丰富的中断源,基本的有IO中断,定时器中断和一些接口中断(SPI,UART,I2C)等等.     现 ...