Android学习之TextView、Layout
常用UI控件:
TestView文本控件;Button按钮控件;EditText编辑文本控件;ImageView图像控件。
UI布局的概念与常用布局:
Android推荐使用XML格式文件作为布局文件,Android系统在运行时会根据布局文件的设置绘制图形界面。
命名规则:
Android的布局文件放置在res/layout文件夹下,布局文件格式为xml,主文件名是小写字母、数字下划线的组合(不允许大写,以及中文)。
布局嵌套:一个布局中包含若干个布局。
TextView:程序中用来显示文字控件
Android中的全部视图组件的父类是android.view.View类;TextView类是View类的直接子类,而Button类是View的间接子类;TextView类并不在android.view包中,而是在android.widget包中,也就是说,我们在Aandroid中使用的具体视图组件,都是在android.widget包中的。
<!-- 容器(list):里面内容其他标签;控件(String):显示的具体内容; -->
<!-- 编写控件容器第一步指定宽高 -->
<!-- layout_width:宽度;layout_height:高度;android:使用系统资源下的属性 -->
<!-- match_parent:填充父容器; -->
<!-- wrap_content:包裹内容; -->
<!-- fill_parent:充满父容器; -->
<!-- xxxdp:直接制定 -->
<!-- text:要显示的文字内容 -->
<!-- LinearLayout:线性布局:搭建软件框架使用;必须编写属性:orientation;width;height -->
<!-- orientation:指定线性布局方向:水平(horizontal);垂直(vertical) -->
<!-- layout_weight:权重;LinearLayout包含的子控件中编写;LinearLayout特有属性 -->
<!-- layout_weight:子控件在父容器所占比例;数字 -->
<!-- wrap_content:先测量子控件包裹内容高度;屏幕中剩余高度进行百分比划分 -->
<!-- match_parent:反比 -->
<!-- 常用百分比划分方式:0dp -->
<!-- textColor:文字颜色 -->
<!-- gravity:设置容器或控件内容位置 -->
TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FDF5E6" android:textSize="16dp" android:text="这里是一个TextView视图组件" />
LinearLayout:
线性布局有水平和纵向两个方向,线性布局通过嵌套布局也可实现复杂布局。
常用属性:
layout_height: 布局在父容器的高度;
layout_width:布局在父容器的宽度;
orientation:设定线性方向;
vertical-垂直布局:按添加顺序从上到下;
horizontal-水平布局:按添加顺序从左到右;
background:布局背景颜色(rgb颜色表)或者图片.
weight:权重
weight=0时,按照width和height来布局;weight>0将填充水平或者垂直剩余空间;weight>0且相等,平均分配剩余空间;weight不相等控件宽高为match_parent按照反比分配;weight不等控件宽高为0dp按照正比分配weight不等控件宽高为wrap_content先包裹在按照比例分配空间
gravity:对该view内容的限定;
layout_gravity:该view相对父view的位置;
margin和padding的使用
<!-- margin:外边局->子控件相对父容器边界距离->上下左右 -->
<!-- background:添加背景色或图片 -->
<!-- padding:内边距->控件内容距离控件边界的距离 -->
<!-- layout_gravity:子控件相对父容器位置 -->
<!-- 根据父容器线性方向起作用->如父容器为垂直布局,只有水平方向 起作用;反之成立 -->
简单地理解:margin为外边框,border为边框,padding为内边框。
如果上下左右的距离不同可以通过以下的属性进行设置。
margin:
android:layout_marginTop android:layout_marginBottom android:layout_marginLeft android:layout_marginRight
padding:
android:paddingTop android:paddingBottom android:paddingLeft android:paddingRight
RelativeLayout:
相对布局:子控件相对父容器或兄弟的控件位置的设置。
居中:
centerHorizontal :如果为true,将该控件的置于水平居中;
centerVertical:如果为true,将该控件的置于垂直居中;
centerInParent:如果为true,将该控件的置于父控件的中央
相对父容器:
alignParentTop:如果为true,将该控件的顶部与其父控件的顶部对齐;
alignParentBottom:如果为true,将该控件的底部与其父控件的底部对齐;
alignParentLeft:如果为true,将该控件的左部与其父控件的左部对齐;
alignParentRight:如果为true,将该控件的右部与其父控件的右部对齐;
<!-- RelativeLayout:相对布局;子控件相对父容器;子控件相对兄弟控件 -->
<!-- 相对属性不设置控件默认位置在父容器左上角 -->
<!-- 子控件相对父容器属性: -->
<!-- layout_alignParentRight:相对于父容器右侧 -->
<!-- layout_alignParentBottom:相对于父容器底部 -->
<!-- layout_alignParentLeft:相对于父容器左侧 -->
<!-- layout_alignParentTop:相对于父容器顶部 -->
<!-- layout_centerInParent:垂直水平居中 -->
<!-- layout_centerVertical:垂直居中 -->
<!-- layout_centerHorizontal:水平居中 -->
相对兄弟控件:
Above:将该控件的底部置于给定ID的控件之上;
Below:将该控件的底部置于给定ID的控件之下;
toLeftOf:将该控件的右边缘与给定ID的控件左边缘对齐;
toRightOf:将该控件的左边缘与给定ID的控件右边缘对齐;
alignBaseline:将该控件的baseline与给定ID的baseline对齐;
alignTop:将该控件的顶部边缘与给定ID的顶部边缘对齐;
alignBottom:将该控件的底部边缘与给定ID的底部边缘对齐;
alignLeft:将该控件的左边缘与给定ID的左边缘对齐;
alignRight:将该控件的右边缘与给定ID的右边缘对齐;