布局

一、LinearLayout(线性布局)

属性

  1. android:id:id地址,用于寻找引用。eg:android:id="@+id/LL_1"

  2. android:layout_width 宽度 eg:android:layout_width="match_parent"

  3. android:layout_height 高度 eg:android:layout_height="match_parent"

  4. android:background 设置背景,可设为图片(命名不能含有数字,只能有字母下划线等)、调颜色等。android:background="@drawable/nn_shaosiming"

  5. android:layout_margin 外边距 eg:android:layout_marginRight="20dp"

  6. android:layout_padding 内边距 eg:android:paddingTop="15dp"
    注:5、6均可加top/bottom/right/left

  7. android:orientation 方向 eg:android:orientation=“horizontal” horizontal:水平分布 vertical:垂直分布

  8. android:gravity 内部从哪开始 eg:android:gravity="right"

  9. android:layout_weight 偏重,按比例分配。一般用于平分宽度或者高度。eg:android:layout_weight="1"
    10.android:ems=“1” 一行一个字排列,用于设置句子竖直排列时。

二、RelativeLayout (相对分布)

属性

  1. android:layout_toLeftOf 在某某某左边 eg:android:layout_toLeftOf=“@id/LL_1”
  2. android:layout_toRightOf 在某某某右边 eg:同上
  3. android:layout_alignBottom 跟……底部对齐 eg:android:layout_alignBottom=“@id/LL_1”
  4. android:layout_alignParentBottom(Top/Right/Left) 和父空间底部(顶部/右边/左边)对齐 eg:android:layout_alignBottom=“true”
  5. android:layout_below 在……下面 eg:android:layout_below=“@id/LL_1”

三、小常识

  1. wrap_content 内容多少,宽度多少;match_parent 匹配父空间(上一层)
  2. dp、sp、px的区别

1.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作为单位的效果

2.px
即像素,1px代表屏幕上一个物理的像素点;
px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同。

3.dip
Density independent pixels ,设备无关像素。
与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字了。
比如一个机器,屏幕4寸,分辨率480X800,他的dpi能算么。
因为不知道边长,肯定不能分开算,4是对角线长度,那直接用勾股定理算对角线像素,除以4,算出来大概是 dpi = 233 像素/英寸。
那么density就是 (233 px/inch)/(160 px/inch)=1.46 左右
顺带说下,android默认的只有3个dpi,low、medium和high,对应 120、160、240,如果没有特别设置,所有的dpi都会被算成这3个。

4.sp
与缩放无关的抽象像素 (Scale-independent Pixel)
sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。
类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。
最佳实践,文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。
例如textSize=“16sp”、layout_width=“60dp”;偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线

像素转换
我们写布局的时候,肯定还是要知道1个dp到底有多少px的。
  换算公式如下: dp = (DPI/(160像素/英寸))px = density px
  注意,这里都是带单位的。px是单位,dp是单位,density没单位。
  为了方便,假设dpi是240 像素/英寸 , 那么density就是1.5
  那么就是 dp=1.5px ,注意这是带了单位的,也就是 设备无关像素 = density 像素
  那么转换为数值计算的话,应该是下面这个式子
  PX = density * DP
也就是
  像素值 = density * 设备无关像素值 ,请注意这里有个值字。

参考

https://www.cnblogs.com/wangjiafang/p/4433912.html

成图

在这里插入图片描述

落木潇潇落花篱,花落人立两无言。
素手轻点流离叶,不思浮沉画两仪。
紫风挽发轻扬起,素纱起伏伊如画。
半仰碧穹四五星,少少也曾惑思语。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值