自学笔记,资源来自菜鸟教程
链接:2.2.1 LinearLayout(线性布局) | 菜鸟教程
Android API 链接:Android 移动应用开发者工具 – Android 开发者 | Android Developers
———————————————————分割线—————————————————————
布局
布局分为六大布局:线性布局(LinearLayout),相对布局(RelativeLayout),表格布局(TableLayout),绝对布局(AbsoluteLayout),帧布局(FrameLayout),网格布局(GridLayout)
一、线性布局(LinearLayout)
1.1、属性
orientation:设置布局方向水平(horizontal)或垂直(vertical)
gravity: 设置子元素的对齐方式
layout-gravity:设置改元素在父容器的对齐方式
layout-wight:设置布局的宽,元素实际大小(wrap-content),填满父元素(fill-content)
layout-height:设置布局的高,属性同上
id:设置一个单独的id,可通过findViewById(“”)获取
background:设置背景颜色或图片
1.2、Weight 权重(常用)
layout_Weight:权重设置子元素的占比,设置水平或垂直的权重时需要将对应的宽高设置为0dp。
通过java代码设置权重:setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, 1));
1.3、分割线
分割线是须在LinearLayout标签中设置
divider:为子元素设置分割线,其实就是一张图片放在了分割线的位置
showDividers:设置分割线所在位置,参数分别(none 无,beginning 开始,end 结束,middle 两组件中间)
dividerPadding:设置分割线边距
二、相对布局(RelativeLayout)
相对布局是根据父容器和同级容器以及偏移(margin)和填充(padding)来设置的布局,属性较多
2.1、属性
gravity:设置容器内组件的对齐方式
ignoreGravity:属性值为true/false,设置组件是否跟随容器统一对齐方式,默认为false。为true时将不受上个属性控制。
2.2、根据父类设置布局
layout_alignParentLeft:紧贴父类左
layout_alignParentRight:紧贴父类右
layout_alignParentTop:紧贴父类顶
layout_alignParentBottom:紧贴父类底
注: 以下属性值为ture/false
android:layout_centerHorizontal:水平居中
android:layout_centerVertical:垂直居中
Android:layout_centerInParent:在父类正中
2.3、根据同级元素设置布局(兄弟元素)
注:同级元素为同一个父容器下存在元素,指定同级元素id
layout_toLeftOf:在某元素的左侧
layout_toRightOf:在某元素的右侧
layout_above:在某元素的顶部
layout_below:在某元素的底部
android:layout_alignLeft:参考同级元素的左边界
android:layout_alignRight:参考同级元素的右边界
android:layout_alignTop:参考同级元素的上边界
android:layout_alignBottom:参考同级元素的下边界
2.4、根据偏移量设置布局(margin)
margin可设置为负数
layout_margin:设置元素的上下左右的偏移量
layout_marginLeft:设置左偏移量
layout_marginRignt:设置右偏移量
layout_marginTop:设置上偏移量
layout_marginBottom:设置元素下偏移量
2.5、根据填充设置布局(padding)
android:padding:设置元素上下左右的填充大小
paddingLeft:设置左填充(内边距)
paddingRight:设置右填充
paddingTop:设置上填充
paddingBottom:设置下填充
三、表格布局(tablelayout)
表格布局中一个组件只能占满一行;需要添加TableRow容器,在tablerow中有多少个组件就会有多少个列,tablerow只能设置layout_height高度,宽度默认填满整个父容器且无法修改,<TableRow></TableRow>
3.1、常用属性
android:collapseColumns:设置隐藏某列
android:shrinkColumns:收缩某列
android:stretchColumns:设置某列为可拉伸列,即可调整列的宽度
以上属性索引从零开始
android:layout_collums: 跳过某个单元格
android:layout_span:合并单元格
四、帧布局(frameLayout)、
相当于是在左右组件前的一个图片,比如广告弹窗
4.1、属性
android:foreground:设置前景图片
android:foregroundGravity:设置前景图片的位置
五、网格布局(GridLayout)
5.1、属性
针对布局的设置
android:orientation:设置组件排列方向
android:gravity:设置组件对齐方式
android:rowCount:设置行数
android:columnCount:列数
针对子组件的设置
默认组件占一行一列,如要组件填满整行或整列需要设置layout_gravity为“fill”
android:layout_row:设置组件所在列(从0开始算)
android:layout_column:设置组件所在行
android:layout_columnSpan:跨行,合并单元格
android:layout_rowSpan:跨列
六、绝对布局(AbsoluteLayout)
基本不会用到,暂时不学了
组件
android中的组件和HTML的组件大同小异,个人认为也就是名字和属性名有所差异。
大概记录一些属性,具体使用方法: 2.3.1 TextView(文本框)详解 | 菜鸟教程
其中的组件有:文本框(TextView)、输入框(EditView)、按钮(Button和ImageButton)、图像视图(ImageView)、单选按钮/复选框(RedioButton/checkBox)、开关按钮/开关(ToggleButton/Switch)、进度条(ProgressBar)、拖动条(SeekBar)、星级评分条(RatingBar)、滚动条(ScrollView)……
一、文本框(TextView)
文本框除基本的宽高,字体大小颜色属性以外还有阴影、边框以及带图片的TextView;
设置文字自动换行:android:singleLine(false:自动换行)
其中边框是在drawable文件夹下创建xml文件并设置边框样式,再将文件引入到组件的blackground属性中。
1.1、设置文字阴影的属性(shadow)
android:shadowCollor:设置阴影颜色
android:shadowRadius:设置阴影模糊程度
android:shadowDx:设置阴影水平偏移量
android:shadowDy:设置阴影垂直偏移量
二、输入框(EditText)
2.1、设置默认提示文字
android:Hint:"" :设置默认提示文字
android:textColorHint:设置提示文字颜色
selectAllOnFocus:设置为true则点击输入框自动文字全选
三、图像视图(ImageView)
图像视图就是web前端里的image标签,但图像视图不同的是可以src和background配合使用,src可以设置透明度(setAlpha),设置长宽比
四、单选按钮和复选框(RadioButton / CheckBox)
大概使用方法和web里的差不多,单选按钮需要设置在一个单选分组里(RadioGroup),同时要为每一个单选按钮设置一个id。
五、开关按钮和开关(ToggleButton / Switch)
5.1、ToggleButton的属性
android:disabledAlpha:设置按钮被禁用时的透明度
android:textOff:未被选中时显示的文字
android:textOn:选中时显示的文字
5.2、Switch的属性
android:showText:设置on/off时是否显示文字,
android:switchMinWight:开关的最小宽度
android:track:设置底部图片
android:thumb:设置滑块图片
设置底部和滑块图片:需要将图片保存在drawable文件夹下再新建一个**_selctor.xml文件,在文件中的<selctor>标签下进行配置,再将对应的文件名写入到属性中
六、进度条(ProgressBar)
ProgressBar有两个间接子类分别是SeekBar和RatingBar。
6.1、属性
android:max:设置进度条的最大值
android:progress:设置进度条当前已完成进度
android:indeterminate:设置为true时不精准显示进度
android:secondaryProgress:二级进度条,有加载和已完成进度两层
6.2、拖动条(SeekBar)
SeekBar拥有进度条所有的属性,还有自己单独的属性:android:thumb可以用来自定义滑块,
基本常用的是SeekBar的监听事件中的三个事件方法:进度改变时触发(OnProgressChanged)、按住滑块时触发(OnStartTrackingTouch)、放开滑块时触发(OnStopTrackingTouch)
6.3、星级评分条(RatingBar)
RatingBar的自定义样式思路:基本都是创建xml文件使用<layter_list><item></item></layter_list>标签,在style文件中设置宽高以及xml的文件名,在将style文件中的文件名引入RatingBar标签的Style属性中。具体代码:2.3.9 RatingBar(星级评分条) | 菜鸟教程
属性
android:isIndicator:设置是否可用,默认为false。
android:numStars:显示的星星个数(整数)
android:rating:设置默认评分值(浮点)
android:StepSize:每次增加的步长(浮点)