布局总结

布局称为容器
当界面有多个控件时,需要按照需求将他们摆放:
布局用来安排内部控件所在的位置
这时布局,也称为容器就成为父控件
布局内部的控件被称为布局的子控件
一个布局也可以称为另一个布局的子控件
线性布局, 相对布局, FrameLayout TableLayout(表格布局) GridLayout

线性布局: 属性: android:orientation (horizontal/vertical)
布局也可以添加id
代码:layout.setOrientation(LinearLayout.HORIZONTAL);//水平布局
layout.setOrientation(LinearLayout.VERTICAL);//水平布局

布局的属性:
布局的常用属性:
宽度 , 高度
权重 android:layout_weight (线性布局)
1.设置权重,为子控件指定占用父控件的空间比例
2.使用百分比来描述子控件占据多少的比例
将布局中子控件的android:layout_width值设置为0;
将布局中子控件的android:layout_weight设置为想要的百分比
父控件中android:weightSum决定总值,默认等同于各子控件之和
间距 android:layout_margin 控件和控件之间的距离
1.设置一个子控件与周边兄弟控件的间距
2.通过android:layout_margin=”5px”来指定统一的边距
3.或是单独指定某一边的边距
android:layout_marginLeft
android:layout_marginRight
android:layout_marginTop
android:layout_marginBottom
android:layout_margin与android:padding的区别
paading用来设置控件内容与控件边界的距离
Margin用来设置控件与其他控件之间的距离

可见android:visibility
1.设置一个控件是否可见
2.存在如下三种情况
visible此控件可见,可见属性的默认值
invsible 此控件不可见,但是参与布局计算,也占用原来的空间
gone此控件不可见, 并且将完全不占用布局
3.当父控件被设置为不可见的一种时,那么子控件总是不能被显示
android:gravity
1.可以辅助为子控件在父控件内定位
2.一般会设置为贴着父控件的周边,或是在中间点的位置
right,子控件在父控件内且右边界对齐,
center_vertical ,子控件在垂直方向上位于父控件的中心位置
fil_vertical, 系统认为有必要的情况下,会拉伸控件大小
android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text相对于view的靠左,靠右等位置.
android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该button放在linearlayout
里靠左、靠右等位置就可以通过该属性设置.
RelativeLayout
相对布局:子控件相对于父控件的位置,可以为一个控件定位
1.layout_alignParentBottom与父控件底边对齐
2.android:layout_centerVertical垂直方向上对父控件居中
android:layout_centerHorizontal=”true”//相对与布局(父控件)水平居中
android:layout_centerVertical=”true”//相对与布局(父控件)垂直居中
android:layout_alinParentLeft=”true”//相对与布局(父控件)左对齐
android:layout_alinparentTop=”true”//相对与布局(父控件)顶端对齐
子控件相对于另一个已经被定位的子控件的位置,可以为其定位
1.layout_alignLeft和定位的子控件左边界对齐
2.layout_above在定位的子控件上方
3.若要成为别的控件定位的依赖,子控件必须设置id

Android px dp 和sp 这些单位的区别:
px:单位不被建议使用,因为同样的100px的图片,在不同手机上显示的实际大小可能不同, 、
dp:这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果,见下图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值