导航:首页 > 操作系统 > android帧布局属性

android帧布局属性

发布时间:2024-08-22 06:05:31

A. android Studio 中的布局

在Android Studio中的布局共有6种布局(已知):

只能在LinearLayout中实现,

父类添加orientation属性(horizontal水平排列 | Vertical垂直排序),

在子类中添加权重layout_weight 数字越大,占比越大。

相对于父容器 (居中):水平居中android:layout_centerHorizontal

 敬茄                                       完全居中android:layout_centerInParent

             败清                           垂直居中android:layout_centerVertical

        对齐:与父容器左边界对齐:android:layout alignParentLeft

                    与父容器右边界对齐:android:layout alignParentRight

                    与父容器的顶部对齐android:layout_alignParentTop

                    与父容器的底部对齐android:layout_alignParentBottom

相对于兄弟视图控件: (位置):  显示在ID为but_id的左侧android:layout_toLeftOf

                                                显示在ID为but_id的右侧android:layout_toRightOf

                                                显示在ID为but_id的上方android:layout_above

       亮枯察                                     显示在ID为but_id的下方android:layout_below

            对齐:    与ID为but_id的左侧对齐android:layout_alignLeft

                        与ID为but_id的右侧对齐android:layout_alignRight

                        与ID为but_id的顶部对齐android:layout_alignTop

                        与ID为but_id的底部对齐android:layout_alignBottom

3、绝对布局

只能在AbsoluteLayout中使用,再要操作的类中使用android:layout_y,android:layout_x

4、帧布局

只能在FrameLayout中使用,使用 View(并列),可以大套小

5、表格布局

在TableLayout类中使用TableRow(行),Button(格)在其TableRow(行)中。

6、网格布局

在GridLayout类中使用Button直接写入,

在类属性中添加android:rowCount="5"(5行),或android:columnCount="4"(4列)

在常见的网页中大部分为线性布局

B. 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" 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算比较麻烦。

四、RelativeLayout

相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:

相对于某一个元素
android:layout_below="@id/aaa" 该元素在 id为aaa的下面
android:layout_toLeftOf="@id/bbb" 改元素的左边是bbb

相对于父元素的地方

android:layout_alignParentLeft="true" 在父元素左对齐
android:layout_alignParentRight="true" 在父元素右对齐

还可以指定边距等,具体详见API

五。TableLayout

表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity="" 。

每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。-----------------cvsyun。

C. android设计界面时控件有多种排列方法,其中常用布局方式有

在android中我们常用的布局方式有这么几种:LinearLayout (线性布局),RelativeLayout (相对布局),TableLayout (表格布局),AbsoluteLayout (绝对布局),FrameLayout (帧布局)。LinearLayout 和 RelativeLayout 应该又是其中用的较多的两种。AbsoluteLayout 比较少用(我自己还没用过),因为它是按屏幕的绝对位置来布局的如果屏幕大小发生改变的话控件的位置也发生了改变。这个就相当于HTML中的绝对布局一样,一般不推荐使用。LinearLayout 顾名思义就是一条条的将控件布置下去,线性布局分为水平线性和垂直线性二者的属性分别为

android:orientation="horizontal" android:orientation="vertical" 。xmlns:android="http://schemas.android.com/apk/res/android" 很多人对这个感到困惑,其实它就是一个命名空间。RelativeLayout 相对布局。里面的每个控件之间的关系都是相对的。如果不设置相对关系的话默认摆放在屏幕左上角。重要属性如下:

android:layout_toRightOf="@id/city" :与id为city的控件的右边对齐。

android:layout_alignTop="@id/city" : 与id为city的控件的顶部对齐。

给出示意图如下所示:

android:layout_width="fill_parent" android:layout_height="wrap_content" 我一般在线性布局里面套相对布局,这时候需要注意上面两个属性相对布局的宽度可以设置为填充父控件,但是高度一般不要设置为填充父控件因为这样的话我想在相对布局外面在放控件就没有效果了因为屏幕已经被相对布局全部占据。

不管是用什么布局,宽度与高度这两个属性一定要弄清楚刚开始的时候我经常会发现有些控件没显示在界面上或者占据了整个屏幕,一检查原来是这里设置错了。还有不要忘记这两个属性在一般控件中都是不可或缺的,忘记设置的话就会报错。

D. android中有几种布局技术,各自优缺点

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里面控制元件位置是绝对的,在萤幕适配方面就不行了。

android中用程式码写布局和xml写布局各自优缺点

xml布局简单,推荐使用;程式码布局可以实现更丰富的功能。
具体使用根据你自己专案的需求来选择。

RAID的分类有几种,各自优缺点是什么?

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的方法有几种,各自有什么优缺点

一是基于端口的静态vlan,一是基于mac地址的动态vlan,

protel中自动布局,手工布局很互动式布局各自的优缺点?

布局最好是根据电路的原理先把元器件布局好,布线的话,数位电路用自动布线加手工调整,也可以先把关键的部分手工布好,再自动走其他的线,最后手工调整,类比电路、高频电路都是需要手工布线的 自动的快,手动的是合理
一般是先自动后再用手动更改自动布线效率高,手工布线更合理

NIKE运动鞋底中有哪几种技术?例如ZOOM,SHOX的,一共有几种?各有什么优缺点?

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的鞋子的白色鞋底

象棋各种布局的优缺点

单提马:中路防守薄弱 可以起横车在六路和四路加强中路防与攻 注意对手一般会从中路进攻 比如盘头马。 窝心炮:炮窝心不宜太久,如果出不去了会造成麻烦 一般是为了强行吃对方中路的兵或进五路兵。 巡河车:对掉兵卒,活马路,并且保马,要注意如果你是车 马 兵这样的位置,对方进炮拴住你车和马 那就相当麻烦了,所以进巡河车一定注意对方的炮。 夹炮屏风:炮在士角的位置 然后上两个正马,一般走成士角炮 和 过宫炮 局,灵活运用炮,攻守兼备。但要注意对方会出车骚扰你的阵型 特别是没有跟的马。 仙人指路:第一步走三路或七路兵,应付对仙人指路有同样进兵卒,有顽强凶狠的直接运炮打兵。所以要看对方怎么走,这种开局比较考棋力。初学者一般不建议走。 飞相局:首着飞相,比较注重防守,可以走成很多布局。。

育秧有几种方式?各有何优缺点?

一般的分旱秧和水秧,这个前期秧苗耐旱点且工作简单一些,但是浪费种子多一点秧苗没有水秧苗好。至于很详细的东西就不好说了。

android 动态布局与静态布局的优缺点?

动态布局,也就是可以根据业务的需求改变接口。实际上就是用程式码写出接口,程式码量比较大。而且维护起来十分的繁琐。特别是一些接口空间比较多的时候。静态的布局,是通过xml来实现的,适用于页面比较固定的情况。但是维护起来比较方便。

印表机有几种,优缺点

喷墨印表机优点:整机价格相对彩色镭射机便宜,较低的一次性购买成本获得彩色照片级输出的效果,缺点:使用耗材为墨盒,成本较高,长时间不用容易堵头;
镭射印表机优点:耗材单张打印成本低,耗材为墨粉,长时间不用也不用担心堵头的问题,打印速度快,高阶产品可以满足高负荷企业级输出以及图文输出,缺点:中低端彩激的彩色打印效果不如喷墨机,可使用的打印介质较少;
针式印表机优点:可以复写打印(发票及多联单据),可以超厚打印(存折证书打印),耗材为色带,耗材成本低,缺点:工作噪音大,体积不可能缩小,打印精度不如喷墨及镭射机。

E. 11 帧布局——FrameLayout

FrameLayout 应该说是 Android 常用UI布局里面最简单的一种,顾名思义,它的布局方式就是将 View 一帧一帧的叠加到一起,有点类似 Photoshop 里面的图层的概念。在学习 FrameLayout 的过程中,你会发现基于它可以设计出很多有意思的 Android UI。那么接下来,我们来一起一探究竟。

FrameLayout 是 最简单且最高效 的布局形式,不过 FrameLayout 的使用频率相比其他的 Layout 来讲要更少很多,主要是因为很多时候它只是作为一个容器来显示单个 View 或者多个 View 重叠的场景。
用过 Photoshop 的朋友对“图层”的概念应该比较熟悉,我们可以插入很多个图层,后添加的图层会挡住先添加的图层,然后针对每个图层我们可以任意的设置它在整个图片中的位置。同样的,我们可以设置 FrameLayout 内部 View 所处的位置,与 RelativeLayout 相似,可以设置放置在上下左右,同样也可以设置边距。辩渗如果放置了多个 View,那么他们会按照放置的顺序依次叠加扮族,后加入 View 的会挡住前面加入的 View。

在第 1 小节我们提到过,FrameLayout 可以设置内部 View 所在的位置,那么这几个属性和 RelativeLayout 一样,这里不再重复,主要介绍一下 FrameLayout 特有又常用的两个属性: android:foreground 和 android:foregroundGravity 。

android:foreground: 设置 FrameLayout 的前景图像
前景图像会置于 FrameLayout 内部所有 View 的层级之上,直接设置图片的资源 id 即可,如下:

android:foregroundGravity: 设置 FrameLayout 前景图片的摆放位置,设置方式与 RelativeLayout 中的 View 一样,如:

我们的 FrameLayout 需要满足以下要求:

效果如下:

这就是 FrameLayout 的基本用法。

到这里,基本上你已经掌握了 FrameLayout 的用法,可能你会有所疑惑,看起来 FrameLayout 也没有什么特别好的地方,似乎完全可以被 RelativeLayout 替代,所以很多人在开发过程中,往往会忘记还有这么个 Layout。其实越是往后学你越会发现,FrameLayout 的简单不仅仅体现在使用上,更大的优势是在于其性能。当你的屏幕上控件不太多时,比如 Android 的桌面 Widget,或者 Home 应用,大多都是直接采用 FrameLayout 完成的布局。
事实上,还有一处是 FrameLayout 用携缺脊的最多的地方,也是一个非常隐蔽的地方。如果我们打开 Hierarchy Viewer 或者类似的 View 分析工具,我们可以看到Android的每一个页面都是在一个 FrameLayout 中完成的布局,也就是无论你定义的布局有多复杂,最终都会被放到一个 FrameLayout 当中显示,这也体现了 FrameLayout 的强大,在今后的学习工作中,希望大家一定不要忽视了 FrameLayout,在此为大家埋下一个伏笔。

这里需要再次强调:FrameLayout 是 最简单,最高效 的布局方式。它的布局方式很容易理解,我们通过它可以将内部的 View 防止到任意的方位,如果内部有多个 View,那么按照防止顺序,后加入的View会挡住前面加入的 View。

阅读全文

与android帧布局属性相关的资料

热点内容
大金空调怎么判断变频压缩机坏 浏览:255
安卓手机如何注册传说对决 浏览:951
自学应聘程序员 浏览:917
linux设置根目录 浏览:89
java向量空间模型 浏览:841
哪个app订餐便宜 浏览:672
有什么app可能存聊天记录 浏览:468
强国app中的纪录片在哪里 浏览:714
dell服务器可用什么样硬盘 浏览:636
javanewbyte 浏览:309
芯片app哪个好 浏览:751
文件夹名称laptop怎么去掉 浏览:247
单片机中断应用 浏览:622
搜狗app哪个好用 浏览:452
中信银行还完贷款什么时候给解压 浏览:233
ug自学编程入门 浏览:612
英语口语900句pdf 浏览:565
javabyte拼接 浏览:481
加密应用在哪里找vivo 浏览:290
python读写图像 浏览:289