当前位置:首页 > 青鸟知识 > android

Android结构及结构属性

来源:长沙北大青鸟新途 发布日期:2016-05-21
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)//www.CodeHighlighter.com/-->1、帧构造 FrameLayout...

Code highlighting produced by Actipro CodeHighlighter (freeware)

1、帧构造 FrameLayout:是最俭朴的一个构造对象。在他外面的的一切显现对象爱你过都将固定在屏幕的左上角,不克不及指定位置,但答应有多个显现对象,只是后一个会直接笼盖在前一个之上显现,会把后面的组件部门或全数盖住。下图的例子里,FrameLayout中放了3个ImageView组件,第一个是蓝色的,第二个是绿色的,第三个是树状图(通明的png格局)。ImageView就相当于Html中的img标签,接上去会讲到这个组件。

上面看一个FrameLayout的例子:

?xml version= 1.0 encoding= utf-8 ?

FrameLayout android:id= @+id/FrameLayout01

android:layout_width= fill_parent android:layout_height= fill_parent

xmlns:android= //schemas.android.com/apk/res/android

ImageView android:id= @+id/ImageView01 android:src= @drawable/p1

android:layout_width= wrap_content android:layout_height= wrap_content /ImageView

ImageView android:id= @+id/ImageView02 android:src= @drawable/p2

android:layout_width= wrap_content android:layout_height= wrap_content /ImageView

ImageView android:id= @+id/ImageView03 android:src= @drawable/p3

android:layout_width= wrap_content android:layout_height= wrap_content /ImageView

/FrameLayout

2、线性构造 LinearLayout:

线性构造是一切构造中最经常运用的类之一,也是RadioGroup, TabWidget, TableLayout, TableRow, ZoomControls类的父类。LinearLayout可让它的子元素垂直或水平的格式排成一行(不设置标的目的的时辰默许按照垂直标的目的摆列)。

上面看一个LinearLayout的例子:别被例子的长度吓住,仔细看一下真实就是一个LinearLayout中放5个TextView标签而已,TextView相当于Html标签中的Label。

?xml version= 1.0 encoding= utf-8 ?

LinearLayout xmlns:android= //schemas.android.com/apk/res/android

android:orientation= vertical

android:layout_width= fill_parent

android:layout_height= fill_parent

android:gravity= center_horizontal

TextView

android:layout_width= fill_parent

android:layout_height= wrap_content

android:text= 给小宝宝起个名字:

android:textSize= 20px

android:textColor= #0ff

android:background= #333

/

TextView

android:layout_width= wrap_content

android:layout_height= wrap_content

android:text= 远远是男孩的奶名

android:textSize= 20px

android:textColor= #0f0

android:background= #eee

android:layout_weight= 3

/

TextView

android:layout_width= wrap_content

android:layout_height= wrap_content

android:text= 瑶瑶是女孩的奶名

android:textColor= #00f

android:textSize= 20px

android:background= #ccc

android:layout_weight= 1

/

TextView

android:layout_width= fill_parent

android:layout_height= wrap_content

android:text= 海因是男孩的台甫

android:textColor= #f33

android:textSize= 20px

android:background= #888

android:layout_weight= 1

/

TextView

android:layout_width= fill_parent

android:layout_height= wrap_content

android:text= 海音是女孩的台甫

android:textColor= #ff3

android:textSize= 20px

android:background= #333

android:layout_weight= 1

/

/LinearLayout

3、尽对构造 AbsoluteLayout

尽对定位AbsoluteLayout,又能够叫做坐标构造,能够直接指定子元素的尽对位置,这类构造俭朴直接,直不雅性强,可是由于手机屏幕尺寸不同比力大,应用尽对定位的顺应性会比力差。

上面我们举一个例子看看:例子里的机械人图片巨细是250X250,能够看到我们应用android:layout_x和android:layout_y来指定子元素的纵横坐标。

?xml version= 1.0 encoding= utf-8 ?

AbsoluteLayout android:id= @+id/AbsoluteLayout01

android:layout_width= fill_parent

android:layout_height= fill_parent

xmlns:android= //schemas.android.com/apk/res/android

android:background= #fff

ImageView

android:src= @drawable/android

android:layout_y= 40dip

android:layout_width= wrap_content

android:layout_x= 35dip

android:id= @+id/ImageView01

android:layout_height= wrap_content

/ImageView

TextView

android:layout_height= wrap_content

android:layout_width= fill_parent

android:id= @+id/TextView01

android:text= Android2.2 进修指南

android:textColor= #0f0

android:textSize= 28dip

android:layout_y= 330dip

android:layout_x= 35dip

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= fill_parent

android:id= @+id/TextView02

android:text= 图文并茂,实践分明,支配性强

android:textColor= #333

android:textSize= 18dip

android:layout_y= 365dip

android:layout_x= 35dip

/TextView

/AbsoluteLayout

4、绝对构造 RelativeLayout

绝对构造 RelativeLayout 答应子元素指定它们相对其父元素或兄弟元素的位置,这是理想构造中最经常运用的构造格式之一。它矫捷性大良多,固然属性也多,支配难度也大,属性之间发作抵触的的可以性也大,应用绝对构造时要多做些测试。

上面我们用绝对构造再做一次下面的例子,起首放置一个图片,其它两个文天职别绝对上一个元素定位:

?xml version= 1.0 encoding= utf-8 ?

RelativeLayout android:id= @+id/RelativeLayout01

android:layout_width= fill_parent

android:layout_height= fill_parent

android:background= #fff

xmlns:android= //schemas.android.com/apk/res/android

ImageView android:id= @+id/ImageView01

android:src= @drawable/android

android:layout_width= fill_parent

android:layout_height= wrap_content

android:layout_marginTop= 40dip

/ImageView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView01

android:text= Android2.2 进修指南

android:textColor= #0f0

android:textSize= 28dip

android:layout_below= @id/ImageView01

android:layout_centerHorizontal= true

android:layout_marginTop= 10dip

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView02

android:text= 图文并茂,实践分明,支配性强

android:textColor= #333

android:textSize= 18dip

android:layout_below= @id/TextView01

android:layout_centerHorizontal= true

android:layout_marginTop= 5dip

/TextView

/RelativeLayout

LinearLayout构造: 线性版面设置配备摆设,在这个标签中,一切元件都是按由上到下的列队排成的。

在这个界面中,我们应用了一个 LinearLayout的构造,它是垂直向下扩展的 ,所以树立的构造XML文件,以

LinearLayout xmlns:android= //schemas.android.com/apk/res/android

android:orientation= vertical

android:layout_width= fill_parent

android:layout_height= fill_parent

节点作为开首。一个构造容器里能够包罗0或多个构造容器。

诠释一下LinearLayout中的标签:

(1)android:orientation= vertical 暗示竖直格式对齐

(2)android:orientation= horizontal 暗示水平格式对齐

(3)android:layout_width= fill_parent 定 义以后视图在屏幕上 能够消费的宽 度,fill_parent即填充全部屏幕。

(4)android:layout_height= wrap_content : 跟着文字栏位的分歧    而 改动这个视图的宽度或高度。有点主动设置框度或高度的意义    

layout_weight默许值是零,用于给一个线性构造中的诸多视图的主要度赋值。好比说我们在 水平标的目的上有一个文本标签和两个文本编纂元素,该文本标签并没有指定layout_weight值,所以它将占有需求供应的最少空间  ;若是两个文本编纂元素每个的layout_weight值都设置为1, 则二者等分在父视图构造残剩的宽度(由于我们声明这二者的主要度相等)。若是两个文本编纂元素此中第一个的layout_weight值设置为1,而 第二个的设置为2,则残剩空间的三分之一分给第二个,三分之二分给第一个(反比划分)。(仅在LinearLayou中有用)。

RelativeLayout构造:答应子元素指定他们相对其它元素或父元素的位置(经由过程ID指定)。

RelativeLayout用到的一些主要的属性:

   第一类:属性值为true或false  仅RelativeLayout中有用

   android:layout_centerHrizontal  水平居中

    android:layout_centerVertical   垂直居中

   android:layout_centerInparent    相对父元素完整居中

   android:layout_alignParentBottom 贴紧父元素的下边沿

   android:layout_alignParentLeft   贴紧父元素的左侧缘

   android:layout_alignParentRight  贴紧父元素的右侧缘

   android:layout_alignParentTop    贴紧父元素的上边沿

   android:layout_alignWithParentIfMissing  若是对应的兄弟元素找不到的话就以父元素做参照物

   第二类:属性值必需为id的援用名“@id/id-name” 仅RelativeLayout中有用

   android:layout_below      在某元素的下方

   android:layout_above      在某元素的的上方

   android:layout_toLeftOf   在某元素的左侧

   android:layout_toRightOf  在某元素的右侧

   android:layout_alignTop   本元素的上边沿和某元素的的上边沿对齐

   android:layout_alignLeft  本元素的左侧缘和某元素的的左侧缘对齐

   android:layout_alignBottom 本元素的下边沿和某元素的的下边沿对齐

   android:layout_alignRight  本元素的右侧缘和某元素的的右侧缘对齐

   第三类:属性值为细致的像素值,如30dip,40px (任何构造都有用)

   android:layout_marginBottom              离某元素底边沿的距离

   android:layout_marginLeft                   离某元素左侧缘的距离

   android:layout_marginRight                 离某元素右侧缘的距离

   android:layout_marginTop                   离某元素上边沿的距离

FrameLayout是最俭朴的一个构造对象:是一个框架构造样式,能够用include标签载进界说的另外一个layout文件,一切的子元素将会固定在屏幕的左上角;你不克不及为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前 一个子元素之出息行笼盖填充,把它们局部或全数盖住(除非后一个子元素是通明的)。

EditText的android:hint

设置EditText为空时输出框内的提示信息。

android:gravity

android:gravity属性是对该view 内容的限制.好比一个button 下面的text.  你能够设置该text 在view的靠左,靠右等位置.以button为例,android:gravity= right 则button下面的文字靠右

android:layout_gravity

android:layout_gravity是用来设置该view绝对与起父view 的位置.好比一个button 在linearlayout里,你想把该button放在靠左、靠右等位置便能够经由过程该属性设置.以button为例,android:layout_gravity= right 则button靠右

android:layout_alignParentRight

使以后控件的右端和父控件的右端对齐。这里属性值只能为true或false,默许false。

android:scaleType:

android:scaleType是节制图片若何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义辨别:

CENTER /center  按图片的原本size居中显现,当图片长/宽逾越View的长/宽,则截取图片的居中部门显现

CENTER_CROP / centerCrop  按比例扩展图片的size居中显现,使得图片长(宽)即是或大于View的长(宽)

CENTER_INSIDE / centerInside  将图片的内容完整居中显现,经由过程按比例减少或原本的size使得图片长/宽即是或小于View的长/宽

FIT_CENTER / fitCenter  把图片按比例扩展/减少到View的宽度,居中显现

FIT_END / fitEnd   把图片按比例扩展/减少到View的宽度,显现在View的下部门位置

FIT_START / fitStart  把图片按比例扩展/减少到View的宽度,显现在View的上部门位置

FIT_XY / fitXY  把图片不按比例扩展/减少到View的巨细显现

MATRIX / matrix 用矩阵来绘制,静态减少减少图片来显现。

** 要注重一点,Drawable文件夹外面的图片定名是不克不及大写的。

我们再把下面的例子从头做一遍,这一次多放一些属性在外面,巨匠实验一下:

?xml version= 1.0 encoding= utf-8 ?

RelativeLayout android:id= @+id/RelativeLayout01

android:layout_width= fill_parent

android:layout_height= fill_parent

android:background= #cfff 色采的设置是argb,第一个c是通明度

xmlns:android= //schemas.android.com/apk/res/android

ImageView android:id= @+id/ImageView01

android:src= @drawable/android

android:layout_width= wrap_content

android:layout_height= wrap_content

android:layout_marginTop= 40dip

android:layout_centerHorizontal= true

/ImageView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView01

android:text= Android2.2 进修指南

android:textColor= #0f0

android:textSize= 28dip

android:layout_below= @id/ImageView01

android:layout_centerHorizontal= true

android:layout_marginTop= 10dip

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView02

android:text= 图文并茂,实践分明,支配性强

android:textColor= #333

android:textSize= 18dip

android:layout_below= @id/TextView01

android:layout_centerHorizontal= true

android:layout_marginTop= 5dip

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView03

android:text= alignTop

android:textColor= #333

android:textSize= 18dip

android:layout_alignTop= @id/ImageView01 和ImageView01上边沿对齐

android:layout_centerHorizontal= true

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView04

android:text= alignLeft

android:textColor= #333

android:textSize= 18dip

android:layout_alignLeft= @id/ImageView01

android:layout_centerHorizontal= true

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView05

android:text= alignRight

android:textColor= #333

android:textSize= 18dip

android:layout_alignRight= @id/ImageView01

android:layout_centerHorizontal= true

/TextView

TextView

android:layout_height= wrap_content

android:layout_width= wrap_content

android:id= @+id/TextView06

android:text= alignBottom

android:textColor= #333

android:textSize= 18dip

android:layout_alignBottom= @id/ImageView01

android:layout_centerHorizontal= true

/TextView

/RelativeLayout


拒绝套路 试听有礼

数据已加密保证您的信息安全