资源描述
关于安卓界面编程(布局部分)实现效果:两种实现方法的比较:通过java代码:通过XML:Android系统中,组成界面的元素主要有:Views:所有用户界面展示信息的基类,包括通用控件,自定义控件。ViewGroups:是Views的继承类,支持多个控件进行组合。Activities:是窗体的基类。在安卓中常用的几种布局:FrameLayout:层叠,新加的控件会叠加到原控件上面,遮挡。LinearLayout:直线添加控件,可垂直,可水平,依次排开部署控件,通过android:orientation属性来改变方向。RelativeLayout:相对布局,相对一个控件的ID,如例如toLeft:”okbutton”, below:”text”。TableLayout:表格布局,用table的行列来定位控件。AbsoluteLayout:绝对位置,用x,y来定位。GirdLayout:通过一个随意选择的网格来放置视图,对于需要从两个方向进行对齐的界面非常有用。控件的三个基本属性:三个基本属性:id(控件的编号),layout_width(控件的宽度),layout_height(控件的高度)有三个既定值:fill_parent,match_parent,wrap_content,前两个的意思是一样的,如果你的程序需要兼容到低版本Android系统,那就使用fill_parent,意思就是与装载自己的容器相同,最大的parent就是手机的屏幕,最后一个wrap_content就是控件的内容有多大,控件就有多大。当然,除了这些既定值之外,我们还可以用数值任意指定控件大小,但必须有单位。单位符号单位名称备注mm毫米与日常生活中我们说的毫米一样,物理意义in英寸与日常生活中我们说的英寸一样,物理意义pt点1pt=1/72英寸,物理意义px像素即屏幕的实际像素dp设备独立像素使显示的大小与屏幕密度无关,推荐使用sp放大像素与dp类似,主要用于文字的显示实例:关于Button的wrap_content200dpwrap_parent三种不同的情况。演示代码: 演示效果:LinearLayout线性布局1.属性orientation :LinearLayout是布局中最基本的控件,也是最常用的布局控件。它有两种,一种是水平布置(horizontal);另一种是垂直布置(vertical),通过属性orientation来设置,水平布局时只有一行可以有若干列;垂直布局时只有一列,可以有若干行。2.属性gravityandroid:gravity属性用来控制放置在本LinearLayout内的控件的对齐方式android:layout_gravity属性是本LinearLayout控件相对于父容器的对齐方式3.属性layout_weightandroid:layout_weight是一个重要的属性,也是一个麻烦的属性,用的好可以让布局更加合理、紧凑。用的不好会使布局显得十分别扭。这个属性的字面意思是“权重”,就是一个比例系数,即表示控件在父容器中所占的空间比例。系数越大,占的比例越大,默认值为0;如果父容器中的各个子控件的android:layout_weight值相等,那么他们将均分父容器空间。LinearLayout可以嵌套,也可以放置其他布局控件。下面我们在一个垂直的LinearLayout嵌套入两个水平的LinearLayout、若干Button和TextView。实例:两种布局方式的使用和权重的设置演示代码: 演示效果:RelativeLayout相对布局在RelativeLayout中的控件会多出几个属性,主要用于处理控件的相对位置相对于父容器、相对于一个控件元素。常用的属性如下:属性名称值备注相对于父窗口layout_alignParentBottom布尔值值为true则表示与父窗口底部对齐layout_alignParentTop布尔值值为true则表示与父窗口顶部对齐layout_alignParentRight布尔值值为true则表示与父窗口右侧对齐layout_alignParentLeft布尔值值为true则表示与父窗口左侧对齐layout_centerInParent布尔值值为true则表示在父窗口中居中layout_centerHorizontal布尔值值为true则表示与父窗口中水平居中layout_centerVertical布尔值值为true则表示与父窗口中垂直居中相对于控件元素layout_above参照控件id该控件的底部对齐参照控件的上方layout_below参照控件id该控件的顶部对齐参照控件的底部layout_toLeftOf参照控件id该控件的右侧对齐参照控件的左侧layout_toRightOf参照控件id该控件的左侧对齐参照控件的右侧实例:演示相对布局演示代码: 演示效果:FrameLayout框架(帧)布局框架布局是最简单的布局形式。所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。这种显示方式有些类似于堆栈。实例:演示帧布局实例代码: 演示效果:TableLayout表格布局有多少个TableRow对象就有多少行,列数等于最多子控件的TableRow的列数直接在TableLayout加控件,控件会占据一行TableLayout属性(也叫全局属性):*代表所有列android:shrinkColumns 设置可收缩的列(内容过多,则收缩,扩展到第二行,控件没布满TableLayout时不起作用)android:stretchColumns 设置可伸展的列(有空白则填充)列可以同时具备stretchColumns及shrinkColumns属性android:collapseColumns 设置要隐藏的列(索引列从0开始)内部控件属性:android:layout_column 该单元格在第几列显示android:layout_span 该单元格占据列数,默认为1实例:TableLayout演示演示代码: 演示效果:AbsoluteLayout(绝对布局)以坐标的方式来定位在屏幕上的位置,缺乏灵活性,在没有绝对定位的情况下相比其他类型的布局更难维护。实例:绝对布局实例实例代码: 实例效果:
展开阅读全文