Android布局和控件
和java图形化界面编程很相似,布局类似一个容器,上面可以放不同的控件(button之类的),不同的布局决定了控件不同的排列位置。
单位:
px(pixels):也就是像素,屏幕上每一个点就是一个像素点,图片大小经常依次为单位,但是安卓最好不要;因为不同的安卓设备因为像素大小不同,可能会导致布局与期待不同
sp:常用来设置字体大小,可以让字体根据用户在“设置”里的改变而变化
dp:密度无关像素,是布局和控件更应该用的单位(基本等同于dip)
下面具体解释一下dp:
这里的dp(device independent pixels)是个单位, 不是动态规划orz。还有个概念是dpi(dotsper inch),是屏幕像素密度也就是一英寸的像素数量。
Android设备用160dpi作为一个基准,实际的dpi除以160就是density
常见的有以下几种:
类型 dpi density
mdpi 160 1
hdpi 240 1.5
xhdpi 320 2
xxhdpi 480 3
然后, px = dp*dpi/160 = dp*density,这就是相当于,不管你的屏幕实际分辨率如何,我是按照对应的比例来设置控件和布局的,就不会有大的变形出现了~
设置大小
android:layout_width= “5dp”
android:layout_width= “match_parent”
可以设置为具体的数值,也可以是match_parent,以父布局的长宽为届,尽可能占全空间,也可以设置为wrap_content,以子布局或控件内容长宽为界,尽可能少占据空间
边距
Margin
控件或布局相对外面组件的距离叫margin,可以这样定义:
android:layout_margin= “5dp”
android:layout_marginLeft= “5dp”当然类似还有Top Right Bottom设置四周边距
padding
控件或者布局为内部区域保留的边距叫做padding ,可以在一个布局或者控件中这样定义
Android:padding= “5dp”类似的也有Left Top Right Bottom
可见性
visiblility
android:visiblility=”visible”
不过默认情况下都是可见的