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
上一篇:Android挪用零碎相机摄影,而且仿照完成水印相机简朴功用
下一篇:Android开辟适用小东西
扫码关注微信公众号了解更多详情
跟技术大咖,专业导师一起交流学习