用户界面的基本构建块是 View 对象,该对象是从View类创建的,占据屏幕上的矩形区域,负责绘图和事件处理. View是窗口小部件的基类,用于创建交互式UI组件,如按钮,文本字段等.
ViewGroup 是
在第三级,我们有不同的布局,它们是ViewGroup类的子类和典型的layout定义了Android用户界面的可视化结构,可以在运行时使用 View/ViewGroup 对象创建,也可以使用简单的XML文件声明布局 main_layout.xml 它位于项目的res/layout文件夹中.
布局参数
本教程更多的是基于XML文件中定义的布局创建GUI.布局可以包含任何类型的小部件,例如按钮,标签,文本框等.以下是具有LinearLayout&minus的XML文件的简单示例;
创建布局后,可以在 Activity.onCreate()回调中从应用程序代码加载布局资源实现如下所示 :
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);}
Android布局类型
Android提供了多种布局,您将在几乎所有的Android应用程序都提供不同的视图,外观和感觉.
Sr.No | 布局&描述 |
---|---|
1 | 线性布局 LinearLayout是一个视图组,可以在一个方向上垂直或水平对齐所有子项. |
2 | 相对布局 RelativeLayout是一个视图组,显示相对位置的子视图. |
3 | 表格布局 TableLayout是一个将视图分组为行和列的视图. |
4 | 绝对布局 Abso luteLayout允许您指定其子项的确切位置. |
5 | Frame Layout FrameLayout是屏幕上的占位符,可用于显示单个视图. |
6 | 列表视图 ListView是一个显示可滚动项列表的视图组. |
7 | 网格视图 GridView是一个ViewGroup,它以二维可滚动网格显示项目. |
布局属性
每个布局都有一组属性,用于定义th的可视属性在布局.所有布局中几乎没有共同的属性,它们是特定于该布局的其他属性.以下是常见属性,将应用于所有布局:
Sr.No | 属性&描述 |
---|---|
1 | android :id 这是唯一标识视图的ID. |
2 | android:layout_width 这是布局的宽度. |
3 | android:layout_height 这是布局的高度 |
4 | android:layout_marginTop 这是布局顶部的额外空间. |
5 | android:layout_marginBottom 这是布局底部的额外空间. |
6 | android:layout_marginLeft 这是布局左侧的额外空间. |
7 | android: layout_marginRight 这是布局右侧的额外空间. |
8 | android:layout_gravity 这指定子视图的定位方式. |
9 | android:layout_weight 这指定布局中应该为视图分配多少额外空间. |
10 | android:layout_x 这指定了布局的x坐标. |
11 | android:layout_y 这指定y-布局的坐标. |
12 | android:layout_width 这是布局的宽度. |
13 | android:layout_width 这是宽度布局. |
14 | android:paddingLeft 这是为布局填充的左侧填充. |
15 | android:paddingRight 这是为布局填充的右侧填充. |
16 | android:paddingTop 这是为布局填充的顶部填充. |
17 | android:paddingBottom 这是为布局填充的底部填充. |
这里的宽度和高度是布局/视图的尺寸,可以用dp(与密度无关的像素),sp(与尺度无关的像素),pt(点数为1/72英寸)来指定),px(像素),mm(毫米),最后是(英寸).
您可以使用精确测量指定宽度和高度但更多十,你将使用其中一个常数来设置宽度或高度 :
android:layout_width = wrap_content 告诉您的视图将自身调整为其内容所需的尺寸.
android:layout_width = fill_parent 告诉您的视图变得与其父视图一样大.
重力属性在定位视图对象中起着重要作用,它可以占用一个或多个以下常量值的更多(用'|'分隔).
常量 | 值 | 描述 |
---|---|---|
top | 0x30 | 将对象推送到其容器的顶部,而不是更改其大小. |
bottom | 0x50 | 将对象推送到其容器的底部,而不是更改其大小. |
left | 0x03 | P ush对象位于其容器的左侧,而不是更改其大小. |
right | 0x05 | 将对象推到其容器的右侧,而不是更改其大小. |
center_vertical | 0x10 | 将对象放在其容器的垂直中心,而不是更改其大小. |
fill_vertical | 0x70 | 增加对象的垂直尺寸如果需要,它会完全填满它的容器. |
center_horizontal | 0x01 | 将对象放在其容器的水平中心,而不是更改其大小. |
fill_horizontal | 0x07 | 如果需要,增加对象的水平尺寸,使其完全填充其容器. |
center | 0x11 | 将对象放在其容器的中心两者都垂直和水平轴,不改变它的大小. |
fill | 0x77 | 如果需要,增加对象的水平和垂直尺寸,使其完全填充其容器. |
clip_vertical | 0x80 | 可以设置为将子项的顶部和/或底部边缘剪裁到其中的附加选项容器的界限.剪辑将基于垂直重力:顶部重力将夹住底部边缘,底部重力将剪切顶部边缘,两者都不会剪切两个边缘. |
clip_horizontal | 0x08 | 可设置为具有左边和/或右边的附加选项把孩子夹在容器的边界上.剪辑将基于水平重力:左侧重力将剪切右侧边缘,右侧重力将剪切左侧边缘,两者都不会剪切两个边缘. |
start | 0x00800003 | 将对象推送到容器的开头,而不是改变其大小. |
end | 0x00800005 | Push对象到其容器的末尾,而不是改变它的大小. |
查看标识
视图对象可以具有分配给它的唯一ID,这将在树中唯一地标识视图. XML标记内的ID的语法是 :
android:id="@+id/my_button"
以下是@和+标志&减号的简要说明;
字符串开头的at符号(@)表示XML解析器应解析并扩展ID字符串的其余部分,并将其标识为ID资源.
加号(+)表示这是必须创建并添加到资源的新资源名称.要创建视图对象的实例并从布局中捕获它,请使用以下 :
Button myButton = (Button) findViewById(R.id.my_button);