android学习笔记(7) andorid View与 andorid ViewGroup详解

2014-12-4 8:32:52     23 人阅读    

       Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其 子包中,Android应用的所有UI组件都继承了 View类,View组件非常类似于Swing编程的 JPanel,它代表一个空白的矩形区域。

 

        View类还有一个重要的子类:ViewGroup,ViewGroup通常作为其他组件的容器使用。 Android的所有UI组件都是建立在ViewViewGroup基础之上的,Android采用了 合器,,设计模式来设计ViewViewGroup: ViewGroupView的子类,因此ViewGroup 可被当成View使用。对于一个Android应用的图形用户界面来说,ViewGroup作为容器来盛 装其他组件,而ViewGroup里除了可以包含普通View组件之外,还可以再次包含ViewGroup组件。

前面介绍Android应用结构时己经指出:Android推荐使用XML布局文件来定义用户界面,而不是使用Java代码来开发用户界面,因此基础所有组件都提供了两种方式来控制组件 的行为:

        XML布局文件中通过XML属性进行控制。

        Java程序代码中通过调用方法进行控制。

实际上不管使用哪种方式,它们控制Android用户界面行为的本质是完全一样的。大部 分时候,控制UI组件的XML属性还有对应的方法。

对于View类而言,它是所有UI组件的基类,因此它包含的XML属性和方法是所有组 件都可使用的。表2.1View类常用的XML属性、相关方法及简要说明。

 

 

2.1 View类的XML属性、相关方法及说明

XML属性

相关方法

android:background

setBackgroundResource(int)

设莨该m件的竹岽颜色

androidiclickable

setClickable(boolean)

设茛该组件是否可以激发点击亊件

androidifadingEdge

setVerticalFadingEdgeEnabled(bool-

ean)

设诧滾动该俎件时组件边界是否使用淡出效采

android: fadi ngEdgeLength

getVerticaIFadingEdgeLength()

设筲淡出边界的长度

android :focusable

setFocusable(boolean)

设筲该组件是否可以得到炖点

android:focusableInTouchMode

setFocusablelnTouchMode(boolean)

设赏该绀件在触換校式K是否"I以得到焦点

android: id

setld(int)

设茛该组件的唯一标识。Java代码中可通过 findViewByld来获取它

android:keepScreenOn

setKeepScreenOn(boolcan)

设》该组件足否会强制手机屏箱一ft打开

android:Iayout_gravity

 

S该组件在其容器中的对齐方式

android: layout_height

setLayoutParams(ViewGroup.Layou- tFarams params)

设置该组件在真父容器屮的布局砗度

 

 

XML属性

相关方法

android:layout_width

selLayoulParams( ViewGroup. Layo- ulParams params)

设该组件在其父界器中的布局宽度

android: layou t_mai^in

 

设莨该组件在it父荇器屮布局时的奴边趴

android: longClickable

sctLongClickable(boolcan)

设许该组件足否响沌长单山牢件

android: minHcight

 

设宄该m件的MA

androidiminWidth

 

设裨该m件的m小宽度

androidrncxtFocusDown

sclNcxtFocusDownld(int)

设咒焦点在该纽件卜.ii中山向卜键时获得焦点的m ID

android: nextFocusLeft

setNexlFocusLeftld(int)

设咒焦点在该m件丨:,丨1_山向左键时诀得焦点的m ft ID

android:nextFocusRight

selNextFocusRightld(int)

设焦点在该m件上,且单山向心键时获得焦点的m

n id

android :nextFocusUp

setNextFocusUpId(int)

设置焦点在该组件上,且单击向上键时获得煺点的组 ED

android:onClick

 

为该绀件的中出审忭绑定监听器

android:padding

setPadding(int,int,inUint)

m件的叫迈设评填允区域

androidipaddingBottom

setPadding(inUint,int,int)

m件的卜达设w填充区域

android:paddingLcft

setPadding(int,int,int,int)

在组件的左边设迓填允区域

androidipaddingRight

setPadding(int,int,int,int)

在组件的心边设苕填允K

android: paddi ngTop

setPadding(int,int,int,int)

m件的上边设筲填充区域

android :saveEnabled

setSaveEnabled(boolean)

如果设Hfalse.那气该mfl被冻结时小会保介 它的状态

android:scrollX

 

该绀件初始化;T?的水平滚动偏移

android:scrollY

 

m件初始化;Ti的每汽滚动偏移

android:scrollbarAlwaysDraw

HorizontalTrack

 

w该绀件妃否总足显示水平滾动条的轨边

android:scroI]barAlwaysDraw

VcrticalTrack

 

设艽该m件是杏总是滾动条的轨逬

android:scrollbarDefaultDelay

BcforeFadc

 

设茛滾动条在淡出隐藏之前延迟多少殳秒

android:scrollbarFadeDuration

 

W滾动条淡出隐藏过fVJ?要多少秒

android:scrollbarSizc

 

设贸垂宵滚动条的宽度和水平滾动条的尚度

android: scrol IbarSty le

 

设咒滚动条的风格和位黄

androidisoundEffcctsEnabled

setSoundEffectsEnabled(boolean)

设该组件被点出时是否使用音效

android:visibility

sctVisibility(int)

设钝该组件是否nj•

 

 

ViewGroup继承了 View类,当然也可以当成普通View来使用,但ViewGroup主要还是 当成容器类使用。但由于ViewGroup是一个抽象类,因此实际使用中通常总是使用ViewGroup 的子类来作为容器,例如各种布局管理器。

ViewGroup 容器控制 K 子组件的分布依赖于 ViewGroup.LayoutParamsViewGroup.Margin LayoutParams两个内部类。这两个内部类中都提供了一些XMLM性,ViewGroup容器中的

子组件可以指定这些XML属性。

2.2显示了 ViewGroup.LayoutParams所支持的两个XML属性。

2.2 ViewGroup.LayoutParams 支持的属性

XML属性

android: layout.height

指定该子组件的基本商度

android: layout_ width

指定该子组件的基本宽度

 

 

android:layout_heightandroid:layout_width 两个属性支持如下三个属性值。

> filLparent:指定子组件的高度、宽度与父容器组件的高度、宽度相同(实际上还要 减去填充的空白距离)。

> match_parent:该属性值与filLparent完全相同,而且从Android 2.2开始就推荐 使用这个属性值来代替filLparent

mTF  

虽然Android推荐使用match_parent代替fill_parent,但由于通过ADT生成 UI组件总是使用fill_parent属性值,因此本书示例程序中都还在使用filLparent

属性值。

> wrap_content:指定子组件的大小恰好能包裹它的内容即可。

2.3显示了 ViewGroup.MarginLayoutParams用于控制子组件周围的页边距(Margin, 也就是组件四周的留白),它支持的XML属性如表2.3所示。

2.3 ViewGroup.MarginLayoutParams 支持的属性

XML厲性

相关方法

android:layout_marginBoltom

setMargins(int.int,int,mt)

措定该子组件下边的页边距

android: lay out_marginLefl

setMargins(inUinUinUint)

指定该子组件左边的页边距

android:layout_marginRight

setMaigins(int,inUint,int)

指定该子组件右边的页边距

android: lay out_marginTop

setMargins(int,int,inUint)

指定该子组件上边的页边距

 

 

后面我们还会详细介绍ViewGroup各子类的用法,此处不再详述。


原文地址:http://www.itmmd.com/201412/252.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

java Rest学习-第一个Java REST 服务(2)-创建服务,下载项目   上一篇
下一篇  android学习笔记(6)Intent 和 IntentFilter

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!