布局参数

来源:互联网 发布:2017最火的编程语言 编辑:程序博客网 时间:2024/06/05 03:50
Android的Margin和Padding跟Html的是一样的。如下图所示:黄色部分为Padding,灰色部分为Margin。
http://www.cnblogs.com/ghj1976/archive/2011/04/26/2029648.html

Android的Margin和Padding跟Html的是一样的。如下图所示:黄色部分为Padding,灰色部分为Margin。


通俗的理解 Padding 为内边框,Margin 为外边框

Padding 为内所有元件与父容器之间的距离;

对应的属性为

android:layout_marginBottom="25dip" 
android:layout_marginLeft="10dip" 
android:layout_marginTop="10dip" 
android:layout_marginRight="10dip" 
android:paddingLeft="1dip" 
android:paddingTop="1dip" 
android:paddingRight="1dip" 
android:paddingBottom="1dip"

如果左右上下都是相同的设置则可以直接设置

android:layout_margin="10dip" 
android:padding="5dip"


android:gravity

    该属性用于控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextView里面文字的对齐方式;若是有子控件的控件设置此属性,则表示其子控件的对齐方式android:gravityleft或right,top,bottom



Android支持的长度单位。

  • px(像素):屏幕上的点。 
    pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
  • in(英寸):长度单位。
  • mm(毫米):长度单位。
  • pt(磅):1/72英寸。 
    point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
  • dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
  • dip:与dp相同,多用于android/ophone示例中。 
    device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 
  • sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。 
    scaled pixels(放大像素). 主要用于字体显示best for textsize。

为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,Android默认的字号也是用的sp。

将dip作为其他元素的单位,比如长度、高度。当然,也可以考虑使用矢量图形,而不是用位图。

 

dp是与密度无关,sp除了与密度无关外,还与scale无关。

如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。

那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。

但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。

也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换.



(1)LinearLayout

android:orientation="vertical" ——可选horizontal 和 vertical 表示控件水平放置或者垂直放置,即横向布局和纵向布局

常见的控件属性

       android:id  —— 为控件指定相应的ID
     android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
     android:grivity —— 指定控件中文字的基本位置,比如说居中,居右等位置
     android:textSize —— 指定控件当中字体的大小
     android:background —— 指定该控件所使用的背景色,RGB命名法 
     android:width —— 指定控件的宽度
     android:height —— 指定控件的高度
     android:padding* —— 指定控件的内边距,也就是说控件中的内容与控件边框之间的距离,可以不用指定left,right,top,bottom,直接指定padding表示四边边距。

     android:margin* —— 指定控件的外边距,也就是控件边框之间的距离,可以不用指定left,right,top,bottom,直接指定margin表示四边边距。

     如若上面的不存在,则试试android:layout_marginleft或right,top,bottom 试试


     android:layout_weight —— 控件之间的大小比例,当前控件所占的比例为:当前控件的weight/所有控件的weight之和:
layout_weight属性是一个非负整数值。线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。例如,在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度 

     android:sigleLine —— 如果设置为真的话,则将当前控件的所有内容在同一行当中进行显示

(2)TableLayout

TableLayout标签本身的属性android:stretchColumns表示拉伸某一列来填满父控件的控件,例如对于TableRow来说,其中有很多控件,但是这些控件都无法让TableRow填满,此时设置了拉伸列,那么指定列将会被拉伸来填满TableRow。

TableLayout中可以包含很多的TableRow标签,TableRow标签中的每个控件占据一列,每个TableRow标签代表占据一行。

 

为了得到复杂的布局,各个Layout之间是可以相互嵌套的

 

(2)RelativeLayout 相对布局

 

常见控件的布局,分为四组:

 android:layout_marginBottom 设置距底部边缘距离;例如:android:layout_marginBottom="0dip"

  android:layout_above 将该控件的底部至于给定ID的控件之上
  android:layout_below 将该控件的顶部至于给定ID的控件之下
  android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
  android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐

 

  android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline对齐
  android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘
  android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐
  android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
  android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐


  android:alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐
  android:layout_alignParentLeft 如果该值为true,则将该控件的左边与父控件的左边对齐
  android:layout_alignParentRight 如果该值为true,则将该控件的右边与父控件的右边对齐
  android:layout_alignParentTop 如果该值为true,则将空间的顶部与父控件的顶部对齐

 

  android:layout_centerHorizontal 如果值为真,该控件将被至于水平方向的中央
  android:layout_centerInParent 如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
  android:layout_centerVertical 如果值为真,该控件将被至于垂直方向的中央

原创粉丝点击