用户界面UI设计与View类
View类
View是用户界面组件的共同父类,几乎所有的用户界面组件都是继承View类而实现的,如TextView、EditText、Button等。
对View类及其子类的属性进行设置,可以在XML布局文件中设置,也可以通过成员方法在Java代码文件中动态设置。
View类的常用属性与方法
属性 | 方法 | 说明 |
---|---|---|
android:id | setId(int) | 设置可通过findViewById方法获取的标识符 |
findViewById(int id) | 与id所对应的组件建立关联 | |
android:background | setBackgroundColor(int color) | 设置背景颜色 |
android:alpha | setAlpha(float) | 设置透明度,取值[0,1]之间 |
android:visibility | setVisibility(int) | 设置组件的可见性 |
android:clickable | setClickable(boolean) | 设置组件是否响应单击事件 |
Android界面布局
在Android应用程序中,界面由布局和控件组成。布局相当于框架,而控件则是框架里面的部件。
布局管理指的是在XML布局文件中设置组件的大小、间距、排列及对齐方式等。
布局文件作为项目的资源,通常存放在res/layout目录下,其扩展名为.xml。可以在XML布局文件中编写布局,也可以在Java代码中编写布局。
View控件
Android所有的UI元素都是通过View控件与ViewGroup容器构建的。其中,Android应用程序的每一个界面有且只有一个ViewGroup容器,ViewGroup作为容器时,可以包含普通View控件,也可以包含ViewGroup容器。
界面布局的通用属性
Android系统中常见的布局方式,如下:ConstraintLayout、LinearLayout、FrameLayout、TableLayout、RelativeLayout、GridLayout。
其中LinearLayout、RelativeLayout、TableLayout、FrameLayout为常用布局,直接或者间接继承自ViewGroup,支持在ViewGroup容器中定义的属性。
属性 | 说明 |
---|---|
android:id | 设置布局的标识 |
android:layout_width | 设置布局的宽度 |
android:layout_height | 设置布局的高度 |
android:background | 设置布局的背景 |
android:layout_margin | 设置当前布局与屏幕边界、周围布局或者控件的距离 |
android:padding | 设置当前布局与该布局中控件的距离 |
如果要在Java程序中控制界面中的组件,则必须为界面文件中的组件定义一个ID,其定义格式为:android:id=“@+id/<组件ID>”。
约束布局ConstraintLayout
主要采用相对其它组件的位置的布局方式,通过指定ID关联其他组件,与之右对齐、上下对齐或屏幕中央等方式来排列组件。
约束布局ConstraintLayout是Android Studio系统默认的布局方式。适用于可视化的方式编写界面布局,有相对定位,居中定位和倾向、chain等性质。
可以直接把组件拖到界面中,它会在每个角上显示一个带有方形调整大小控键的边框,并在每边显示圆形约束控键,可以通过拖拽实现调整组件大小及添加约束。
线性布局LinearLayout
线性布局内的子控件按照水平或垂直方向排列。在XML布局文件中,使用<LinearLayout></LinearLayout>标签定义LinearLayout布局。
属性 | 说明 |
---|---|
android:orientation | 设置布局内控件的排列顺序,其属性值有水平(horizontal)和垂直(vertical)两种。 |
android:layout_weight | 在布局内设置控件的权重,属性值可以直接写int值,布局内的控件按照权重比显示大小。 |
android:gravity | 设置控件的对齐方式,其属性值有上top、下bottom、左letf、右right、水平方向居中center_horizontal、垂直方向居中center_vertical。 |
相对布局RelativeLayout
相对布局通过相对定位的方式指定子控件的位置。在XML布局文件中,使用<RelativeLayout></RelativeLayout>标签定义RelativeLayout布局。
属性 | 说明 |
---|---|
android:layout_above | 设置当前控件位于某控件上方 |
android:layout_below | 设置当前控件位于某控件下方 |
android:layout_toLeftOf | 设置当前控件位于某控件左侧 |
android:layout_toRightOf | 设置当前控件位于某控件右侧 |
android:layout_centerInParent | 设置当前控件位于父布局的中央位置 |
android:layout_centerVertical | 设置当前控件位于父布局的垂直居中位置 |
android:layout_centerHorizontal | 设置当前控件位于父布局的水平居中位置 |
android:layout_alignParentTop | 设置当前控件是否与父控件顶端对齐 |
android:layout_alignParentLeft | 设置当前控件是否与父控件左对齐 |
android:layout_alignParentRight | 设置当前控件是否与父控件右对齐 |
android:layout_alignParentBottom | 设置当前控件是否与父控件底端对齐 |
android:layout_alignTop | 设置当前控件的上边界与某控件的上边界对齐 |
android:layout_alignLeft | 设置当前控件的左边界与某控件的左边界对齐 |
android:layout_alignRight | 设置当前控件的右边界与某控件的右边界对齐 |
android:layout_alignBottom | 设置当前控件的下边界与某控件的下边界对齐 |
表格布局TableLayout
表格布局采用行列的形式来管理控件,通过在表格中添加TableRow布局或者控件来控制表格行数,然后在TableRow布局中添加控件来控制表格的列数。TableLayout继承自LinearLayout,支持LinearLayout所支持的属性。
TableLayout常用属性 | 说明 |
---|---|
android:shrinkColumns | 设置可收缩的列 |
android:stretchColumns | 设置可拉伸的列 |
android:collapseColumns | 设置可隐藏的列 |
例如,android:shrinkColumns = “0, 1, 2”,即表格为3列,其列编号为第1、2、3列,三列都可以收缩。
TableLayout中控件的常用属性: | 说明 |
---|---|
android:layout_column | 控件在第几列显示 |
android:layout_span | 控件占据几列 |
例如,android:layout_column="1",表示在第2个位置显示(下标从0开始)。
帧布局FrameLayout
帧布局,创建空白区域,在空白区域中添加子控件,每一个控件占据一帧,层层叠加,后面添加的子控件会叠加在前一个控件上面,一般默认所有控件与布局左上角对齐。
标签:控件,界面,布局,设置,对齐,layout,Android,android From: https://blog.csdn.net/m0_47449012/article/details/136876592