FrameLayout没有位置概念。好处在于,运行效率高。
LinearLayout,子元素一个个接一个排布。水平排布和垂直排布。
RelativeLayOut,相对布局,子元素相对于其他子元素排布。
TableLayOut,是水平方向和垂直方向的LinearLayOut的混合。
使用可视化编辑工具不具有很好的屏幕适配性,编写复杂的页面时候,使用可视化的编辑工具也难以胜任。
1TextView:用于在界面上显示一段文本信息。
Android:layout_width,_height用于指定空间的宽度和高度。安卓中所有的控件都有这两个属性。可选有match_parent,fill_parent和wrap_content.其中前两者意义相同,官方更加推荐match_parent,match_parent表示当前空间的大小和父布局的大小一样,也就是父布局来控制当前控件的大小。Wrap_parent表示当前控件的大小刚好包含里面的内容,由空间的内容决定控件的大小。也可以对于控件的高宽指定固定的大小,但是可能在不同手机的适配出现问题。
Android:gravity用来指定文字的对齐方式。指定“center”,效果相当于”center_vertical|center_horizontal”,表示文字在垂直和水平方向都居中对齐。
Android:textSize,android:textColor用于指定文字的大小和颜色。
2Button:按钮。
3EditText:允许用户在控件中编辑内容,并可以在程序中对这些内容进行处理。发短信发微博。一些附加的字段设置:提示性文字,当输入的文字多的时候,如果设置的是wrap_content,它总能包含很多内容,无限拉长,设置最大的行,当输入的内容超过两行,文笔自动上滚。
4ImageView:用于在界面展示图片的控件。
5ProgressBar:用于在界面上显示一个进度条。
所有的安卓的组件都有一个设置可见的属性。Android:visibility,可选的值有visible,invisible,gone.visible表示控件可见,invisible表示控件不可见,但是还是占据原来的位置和大小,可以理解为控件变为透明状态。Gone不仅不可见也不占据任何屏幕空间。我们也可以用代码来控制控件的可见性,使用setVisibility方法,可以传入View.VISIBLE,View.INVISIBLE和View.GONE三个值。
6AlterDialog可以在当前页面弹出一个对话框,屏蔽与其他控件进行交互的能力。使用alterDialog一般是用于提示非常重要的内容和警告信息。比如在删除前弹出一个确认的按钮。
7ProgressDialog可以在界面中跳出一个对话框,屏蔽与其他控件的交互能力,不同的是progressdialog在对话框中显示一个进度条。
布局:
一个丰富的页面总是由很多的控件组成,布局让组件有条不紊的放置在界面上。布局是一种可以放置很多控件的容器。它可以按照一定的规律调整内部控件的位置。布局的内容除了可以放置布局外还可以放置控件。多层布局的嵌套。
LinearLayout线性布局:把所有的控件在线性方向上依次排列。通过android:orientation,如果属性为vertical为垂直方向排布,如果是horizontal就是水平方向排布。
RelativeLayout相对布局:通过相对定位的方式让控件出现在布局的任何位置。可以相对于父布局进行定位,也可以相对于控件定位。
FrameLayout所有的控件全部放在左上角。
TableLayout以表格的方式来排列控件。合并单元格。
创建自定义控件:
所有的控件都是直接或者间接的继承与于view,所有的布局都是直接或者间接继承viewGroup。View是安卓中最基本的ui组件,可以在屏幕中绘制一块矩形区域并且相应矩形区域的事件。我们使用的各种组件实际上就是在view的基础上添加各自的功能。Viewgroup是特殊的view,可以包含很多viewGroup,view,用于放置控件和布局的容器。
如果系统自带的控件不能满足需求的,我们可以通过上面的继承结构,创建自己的控件。
ListView当程序中有大量数据显示的时候需要使用到ListView,允许用户通过手指上下滑动的形式将屏幕外的数据拖动到屏幕中,也可以把屏幕中的数据拖动出去。
单位和尺寸:
Px像素,屏幕中的可以显示的最小的元素单元。
Pt磅数,一磅等于72分之一英寸,用pt表示字体的单位。
用以上的单位,容易出现的问题是,在不同分辨率的屏幕上显示的效果完全不同。
Dp,dip,密度无关像素,在不同的密度屏幕下显示保持一样。
Sp可伸缩像素,解决文字大小适配问题。
安卓中的密度:屏幕每英寸所包含的像素数。Dpi为单位。密度越高显示效果就越精细。如果手机屏幕宽2英寸长3英寸,分辨率320*480,那么160dpi。
安卓规定,在160dpi上,1dp=1px.在320上,1dp=2x。