⑴ android的ui布局有哪些
布局(Layout)的概念是针对Activity的,Activity就是布满整 个Android设备的窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,每个需要显示的Activity都需要在AndroidManifest.xml文件之中声明。
通常情况下,开发人员可以使用两种方式来创建UI组件,一种方式是使用XML方式来配置UI组件的相关属性,然后装载这些UI组件,这也是最常用的方式。但是有些特殊情况下,需要动态生成UI组件,则需要使用第二种方式,完全使用java代码来创建UI组件。
XML布局文件是Android系统中定义的Layout的常用方式,所有布局文件必须包含在res/layout目录中,且必须符合Java的命名 规范。当在res/layout目录下新增了布局文件之后,R.java文件会自动收录该布局资源,Java代码可通过setContentView方法 在Activity中显示该Layout。
setContentView(R.layout.<资源名称>);
在布局文件中可以指定UI组件的android:id属性,该属性的属性值代表该组件的唯一标识。通过Activity.findViewById()访问,并且findViewById()必须在setContentView加载xml文件之后使用,否则会抛出异常。
findViewById(R.id.)
Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其子包中,Android应用的 所有UI组件都继承了View类。View类还有一个重要的子类:ViewGroup,ViewGroup类是所有布局管理器的父类。
ViewGroup容器控制其子组件的分布依赖于ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams两个内部类。
ViewGroup.LayoutParams提供两个XML属性设定组件的大小。
android:layout_height:指定该子组件的基本高度;
android:layout_width:指定该子组件的基本宽度。
这两个属性有三个基本值,这两个属性有三个特定的值:
fill_parent:指定组件的高度、宽度与父容器组件的一样。
match_parent:与fill_parent一样,Android2.2开始推荐使用。
warp_content:内容包裹。
ViewGroup.MarginLayoutParams用于控制子组件周围的页边距。
android:layout_marginBottom(下边距);
android:layout_marginLeft(左边距);
android:layout_marginRight(右边距):
layout_marginTop(上边距)
对于View的尺寸,android提供了三种单位供选择使用:
px:像素。
dp:dpi,表示屏幕实际的像素。
sp:与scale无关的像素,与dp类似。
尺寸单位选择的技巧:如果设置长度、高度等属性时可以使用dp或sp,但是如果设置字体,需要使用px。如果使用dp或sp,系统会根据屏幕密度的变化进行转换。
为了适应各种界面风格,Android提供了五种布局规范,利用这五种布局,基本上可以在设备上随心所欲的摆放任何UI组件,这五种布局分别是:
FrameLayout(帧布局)。
LinearLayout(线性布局)
RelativeLayout(相对布局)。
TableLayout(表格布局)。
AbsoluteLayout(绝对布局)。
线性布局(LinearLayout)
LinearLayout是最常用的布局方式,在XML文件中使用标记。它会将容器里的UI组件一个一个挨着排列起来。但是LinearLayout不会换行,当UI组件超出屏幕之后,则不会被显示出来。LinearLayout有两个重要的XML属性:androidgravity(对齐方 式);android:orientation(排列方式)。
android:orientation(排列方式),设定了LinearLayout中包含的UI组件的排列方式,有两个选项vertical(竖向)、horizontal(横向,默认值)
android:gravity(对齐方式),设定LinearLayout中包含UI组件的对齐方式,其选项很多,常用上(top)、下(bottom)、左(left)、右(right)。
⑵ android中有几种布局技术,各自优缺点
在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局念弊敏、帧布局、表格布局)。
在2.2作业系统中将AbsoluteLayout过期。而目前FrameLayout、TableLayout也逐渐少用。
在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器接口)
总之,Android中一共有六种布局。目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。
一般简单的布局就用LinearLayout,复杂点的用RelativeLayout(可以防止多层巢状),像FrameLayout,里面的控制元件是重叠的,AbsoluteLayout里面控制元件位置是绝对的,在萤幕适配方面就不行了。
xml布局简单,推荐使用;程式码布局可以实现更丰富的功能。
具体使用根据你自己专案的需求来选择。
RAID是“Rendant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。
主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有如下几种:
RAID 0:无差错控制的带区组
要实现RAID0必须要有两个以上硬盘驱动器,RAID0实现了带区组,资料并不是储存在一个硬盘上,而是分成资料块储存在不同驱动器上。因为将资料分布在不同驱动器上,所以资料吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的资料在不同的驱动器上效率最好。它不需要计算校验码,实现容易。它的缺点是它没有资料差错控制,如果一个驱动器中的资料发生错误,即使其它盘上的资料正确也无济于事了。不应该将它用于对资料稳定性要求高的场合。如果使用者进卜派行图象(包括动画)编辑和其它要求传输比较大的场合使用RAID0比较合适。同时,RAID可以提高资料传输速率,比如所需读取的档案分布在两个硬盘上,这两个硬盘可以同时读取。那么原来读取同样档案的时间被缩短为1/2。在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能的,如果一个磁盘(物理)损坏,则所有的资料都无法使用。
RAID 1:镜象结构
raid1对于使用这种RAID1结构的装置来说,RAID控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。通过下面的结构图您也可以看到必须有两个驱动器。因为是镜象结构在一组盘出现问题时,可以使用镜象,提高系统的容错能力。它比较容易设计和实现。每读一次盘只能读出一块资料,也就是说资料块传送速率与单独的盘的读取速率相同。因为RAID1的校验十分完备,因此对系统的处理能力有很大的影响,通常的RAID功能由软体实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效率。当您的系统需要极高的可靠性时,如进行资料统计,那么使用RAID1比较合适。而且RAID1技术支援“热替换”,即不断电的情况下对故障磁盘进行更换,更换完毕只要从映象盘上恢复资料即可。当主仔枝硬盘损坏时,映象硬盘就可以代替主硬盘工作。映象硬盘相当于一个备份盘,可想而知,这种硬盘模式的安全性是非常高的,RAID 1的资料安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。
RAID2:带海明码校验
从概念上讲,RAID 2 同RAID 3类似,两者都是将资料条块化分布于不同的硬盘上, 条块单位为位或字 节。然而RAID 2 使用一定的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复资讯,使得RAID 2技术实施更复杂。因此,在商业环境中很少使用。下图右边的各个磁盘上是资料的各个位,由一个数据不同的位运算得到的海明校验码可以储存另一组磁盘上,具体情况请见下图。由于海明码的特点,它可以在资料发生错误的情况下将错误校正,以保证输出的正确。它的资料传送速率相当高,如果希望达到比较理想的速度,那最好提高储存校验码ECC码的硬盘,对于控制器的设计来说,它又比RAID3,4或5要简单。没有免费的午餐,这里也一样,要利用海明码,必须要付出资料冗余的代价。输出资料的速率与驱动器组中速度最慢的相等。
RAID3:带奇偶校验码的并行传送
raid3这种校验码与RAID2不同,只能查错不能纠错。它访问资料时一次处理一个带区,这样可以提高读取和写入速度,它像RAID 0一样以并行的方式来存放资料,但速度没有RAID 0快。校验码在写入资料时产生并储存在另一个磁盘上。需要实现时使用者必须要有三个以上的驱动器,写入速率与读出速率都很高,因为校验位比较少,因此计算时间相对而言比较少。用软体实现RAID控制将是十分困难的,控制器的实现也不是很容易。它主要用于图形(包括动画)等要求吞吐率比较高的场合。不同于RAID 2,RAID 3使用单块磁盘存放奇偶校验资讯。如果一块磁盘失效,奇偶盘及其他资料盘可以重新产生资料。如果奇偶盘失效,则不影响资料使用。RAID 3对于大量的连续资料可提供很好的传输率,但对于随机资料,奇偶盘会成为写操作的瓶颈。利用单独的校验盘来保护资料虽然没有映象的安全性高,但是硬盘利用率得到了很大的提高,为(n-1)/n。
RAID4:带奇偶校验码的独立磁盘结构
raid4RAID4和RAID3很像,不同的是,它对资料的访问是按资料块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特点和RAID3也挺像,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,而且访问资料的效率不怎么好。
RAID5:分散式奇偶校验的独立磁盘结构
RAID5清晰图片从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5也是以资料的校验位来保证资料的安全,但它不是以单独硬盘来存放资料的校验位,而是将资料段的校验位互动存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的资料。硬盘的利用率为n-1。但是它对资料传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次资料传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分资料传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的资料及奇偶资讯,两次写新的资料及奇偶资讯。RAID-5的话,优点是提供了冗余性(支援一块盘掉线后仍然正常执行),磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。RAID5最大的好处是在一块盘掉线的情况下,RAID照常工作,相对于RAID0必须每一块盘都正常才可以正常工作的状况容错效能好多了。因此RAID5是RAID级别中最常见的一个型别。RAID5校验位即P位是通过其它条带资料做异或(xor)求得的。计算公式为P=D0xorD1xorD2…xorDn,其中p代表校验块,Dn代表相应的资料块,xor是数学运算子号异或。
RAID5校验位演算法详解
P=D1 xor D2 xor D3 … xor Dn (D1,D2,D3 …Dn为资料块,P为校验,xor为异或运算)
XOR(Exclusive OR)的校验原理如下表:
A值 B值 Xor结果
0 0 0
1 0 1
0 1 1
1 1 0
这里的A与B值就代表了两个位,从中可以发现,A与B一样时,XOR(非或又称"非异或")结果为0,A与B不一样时,XOR结果就是1,如果知道XOR结果,A和B中的任何两个数值,就可以反推出剩下的一个数值。比如A为1,XOR结果为1,那么B肯定为0,如果XOR结果为0,那么B肯定为1。这就是XOR编码与校验的基本原理。
RAID6:两种储存的奇偶校验码的磁盘结构
raid6名字很长,但是如果看到图,大家立刻会明白是为什么,请注意p0代表第0带区的奇偶校验值,而pA代表资料块A的奇偶校验值。它是对RAID5的扩充套件,主要是用于要求资料绝对不能出错的场合。当然了,由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证资料正确性所花费的时间比较多,造成了不必须的负载。我想除了军队没有人用得起这种东西。
常见的RAID6组建型别RAID 6(6D + 2P)
1 RAID 6(6D + 2P)原理
和RAID 5相似,RAID 6(6D + 2P)根据条带化的资料生成校验资讯,条带化资料和校验资料一起分散储存到RAID组的各个磁盘上。在图1中,D0,D1,D2,D3,D4和D5是条带化的资料,P代表校验资料,Q是第二份校验资料。
RAID 6(6D + 2P)根据条带化的资料生成校验资讯,条带化资料和校验资料一起分散储存到RAID组的各个磁盘上
RAID 6校验资料生成公式(P和Q):
P的生成用了异或
P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5
Q的生成用了系数和异或
Q = A0*D0 XOR A1*D1 XOR A2*D2 XOR A3*D3 XOR A4*D4 XOR A5*D5
D0~D5:条带化资料
A0~A5:系数
XOR:异或
*:乘
在RAID 6中,当有1块磁盘出故障的时候,利用公式1恢复资料,这个过程是和RAID 5一样的。而当有2块磁盘同时出故障的时候,就需要同时用公式1和公式2来恢复资料了。
各系数A0~A5是线性无关的系数,在D0,D1,D2,D3,D4,D5,P,Q中有两个未知数的情况下,也可以联列求解两个方程得出两个未知数的值。这样在一个RAID组中有两块磁盘同时坏的情况下,也可以恢复资料。
上面描述的是校验资料生成的算法。其实RAID 6的核心就是有两份检验资料,以保证两块磁盘同时出故障的时候,也能保障资料的安全。
RAID7:优化的高速资料传送磁盘结构
RAID7所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问资料的速度;每个磁盘都带有高速缓冲储存器,实时作业系统可以使用任何实时操作晶片,达到不同实时系统的需要。允许使用SNMP协议进行管理和监视,可以对校验区指定独立的传送通道以提高效率。可以连线多台主机,因为加入高速缓冲储存器,当多使用者访问系统时,访问时间几乎接近于0。由于采用并行结构,因此资料访问效率大大提高。需要注意的是它引入了一个高速缓冲储存器,这有利有弊,因为一旦系统断电,在高速缓冲储存器内的资料就会全部丢失,因此需要和UPS一起工作。当然了,这么快的东西,价格也非常昂贵。
RAID10/01:高可靠性与高效磁盘结构
这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以互为映象的目的。大家可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的资料库中。
其中可分为两种组合:RAID10和RAID01
RAID 10是先镜射再分割槽资料。是将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 10有着不错的读取速度,而且拥有比RAID 0更高的资料保护性。
RAID 01则是跟RAID 10的程式相反,是先分割槽再将资料镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。RAID 01比起RAID 10有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,RAID 01就会停止运作,而RAID 10则可以在牺牲RAID 0的优势下正常运作。
RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用。
RAID 50:被称为分布奇偶位阵列条带
同RAID 10相仿的,它具有RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分散式奇偶位,而两组硬盘再组建成RAID 0,实验跨磁盘抽取资料。RAID 50提供可靠的资料储存和优秀的整体效能,并支援更大的卷尺寸。即使两个物理磁盘发生故障(每个阵列中一个),资料也可以顺利恢复过来。
RAID 50最少需要6个驱动器,它最适合需要高可靠性储存、高读取速度、高资料传输效能的应用。这些应用包括事务处理和有许多使用者存取小档案的办公应用程式。
RAID 53:称为高效资料传送磁盘结构
结构的实施同Level 0资料条阵列,其中,每一段都是一个RAID 3阵列。它的冗余与容错能力同RAID 3。这对需要具有高资料传输率的RAID 3配置的系统有益,但是它价格昂贵、效率偏低。
RAID 1.5:一个新生的磁盘阵列方式
它具有RAID 0+1的特性,而不同的是,它的实现只需要2个硬盘。
从表面上来看,组建RAID 1.5后的磁盘,两个都具有相同的资料。当然,RAID 1.5也是一种不能完全利用磁盘空间的磁盘阵列模式,因此,两个80GB的硬盘在组建RAID 1.5后,和RAID 1是一样的,即只有80GB的实际使用空间,另外80GB是它的备份资料。如果把两个硬盘分开,分别把他们执行在原系统,也是畅通无阻的。但通过实际应用,我们发现如果两个硬盘在分开执行后,其资料的轻微改变都会引起再次重组后的磁盘阵列,没法实现完全的资料恢复,而是以资料较少的磁盘为准。
:ke../view/7102.htm
一是基于端口的静态vlan,一是基于mac地址的动态vlan,
布局最好是根据电路的原理先把元器件布局好,布线的话,数位电路用自动布线加手工调整,也可以先把关键的部分手工布好,再自动走其他的线,最后手工调整,类比电路、高频电路都是需要手工布线的 自动的快,手动的是合理
一般是先自动后再用手动更改自动布线效率高,手工布线更合理
air sole:元祖级气垫,厚1/2英寸,具有一定减震力现在常常用于入门级球鞋中。分为内建和外接。
zoom air:在一个较薄的气垫中加入立体织物,以增强其弹性,多用于前掌内建,以增加启动速度。
zoom cage:zoom air的加大版本,在强调弹性的同时加强了缓震性,但是由于设计因素,因此外部基本上加上龙骨作为支撑。多用于跑鞋。
air max:气体容量大,缓震效果一流,内部分隔为不同气室,气压不同,以增强稳定性。多用于中锋鞋或者后掌。脚感较硬,沉重。
total max:理解为巨型max就可以了。
tuned air:一种非常好的气垫,内部半圆形球体可以调节气压,缓震效果一流,但是成本太高,已经几乎绝迹,但是有的跑鞋上貌似还有使用的说。
shox:工程橡胶一体铸成的圆柱体结构,机械缓震体系,依赖形变来缓冲并反弹,目前唯一经过证实可以提高弹跳的科技。
impax:另外一种机械缓震系统,依靠拱形结构在运动中的形变来吸收冲击力。实际应用效果远不如理论效果,缓震较差,硬。
i.p.s:jordan系列自主研发的最新科技,根据运动中足底受力点来安置不同密度的phylon柱来提供缓震,用于jordan鞋。
phylon:就是你看见的nike的鞋子的白色鞋底
单提马:中路防守薄弱 可以起横车在六路和四路加强中路防与攻 注意对手一般会从中路进攻 比如盘头马。 窝心炮:炮窝心不宜太久,如果出不去了会造成麻烦 一般是为了强行吃对方中路的兵或进五路兵。 巡河车:对掉兵卒,活马路,并且保马,要注意如果你是车 马 兵这样的位置,对方进炮拴住你车和马 那就相当麻烦了,所以进巡河车一定注意对方的炮。 夹炮屏风:炮在士角的位置 然后上两个正马,一般走成士角炮 和 过宫炮 局,灵活运用炮,攻守兼备。但要注意对方会出车骚扰你的阵型 特别是没有跟的马。 仙人指路:第一步走三路或七路兵,应付对仙人指路有同样进兵卒,有顽强凶狠的直接运炮打兵。所以要看对方怎么走,这种开局比较考棋力。初学者一般不建议走。 飞相局:首着飞相,比较注重防守,可以走成很多布局。。
一般的分旱秧和水秧,这个前期秧苗耐旱点且工作简单一些,但是浪费种子多一点秧苗没有水秧苗好。至于很详细的东西就不好说了。
动态布局,也就是可以根据业务的需求改变接口。实际上就是用程式码写出接口,程式码量比较大。而且维护起来十分的繁琐。特别是一些接口空间比较多的时候。静态的布局,是通过xml来实现的,适用于页面比较固定的情况。但是维护起来比较方便。
喷墨印表机优点:整机价格相对彩色镭射机便宜,较低的一次性购买成本获得彩色照片级输出的效果,缺点:使用耗材为墨盒,成本较高,长时间不用容易堵头;
镭射印表机优点:耗材单张打印成本低,耗材为墨粉,长时间不用也不用担心堵头的问题,打印速度快,高阶产品可以满足高负荷企业级输出以及图文输出,缺点:中低端彩激的彩色打印效果不如喷墨机,可使用的打印介质较少;
针式印表机优点:可以复写打印(发票及多联单据),可以超厚打印(存折证书打印),耗材为色带,耗材成本低,缺点:工作噪音大,体积不可能缩小,打印精度不如喷墨及镭射机。
⑶ Android 界面排版
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局).
一、FrameLayout
这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西。
二、LinearLayout
线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。
三、AbsoluteLayout
绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px" android:layout_y="12px" 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算薯指比较麻烦。 AbsoluteLayout 可以让子元素指定准确的x/y坐标值,并显示在屏幕上。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。他是绝对坐标,所以在实际中不提倡使用。
相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:
相对于某一个元素
// 相对于给雀埋定ID控件
android:layout_above 将该控件的底部置于给定ID的控件之上;
android:layout_below 将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf 将该控件的右边缘与给定ID的数岁配控件左边缘对齐;
android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
// 相对于父组件
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
// 居中
android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;
android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
// 指定移动像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;
example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = “10px”
还可以指定边距等,具体详见API
五.TableLayout
表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity="" 。
每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row 。TableLayout 容器不会显示row 、cloumns 或cell 的边框线。每个 row 拥有0个或多个的cell ;和html中的table查不多少。在实际中也经常使用。
Android的Margin和Padding跟Html的是一样的。通俗的理解 Padding 为内边框,Margin 为外边框
对应的属性为
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"
过去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素 等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清 内容。
与分辨率无关的度量单位可以解决这一问题。Android支持下列所有单位。
px(像素):屏幕上的点。
in(英寸):长度单位。
mm(毫米):长度单位。
pt(磅):1/72英寸。
dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
dip:与dp相同,多用于android/ophone示例中。
sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用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,系统会根据屏幕密度的变化自动进行转换