admin 管理员组

文章数量: 1086019


2024年4月18日发(作者:学java报什么专业)

Android2.2

——

API

中文文档

目录:

1

——TextView

2

——EditText

3

——AccessibilityService

(4)——Manifest

5

——View

6

——ImageView

(7)——ImageButton

8

——QuickContactBadge

9

——ZoomButton

(10)——CheckBox

11

——RadioButton

12

——Button

(13)——ToggleButton

14

——ViewStub

(15)——

GridView

一、

TextView

1

、结构

↳ew

2、已知直接子类:

Button,CheckedTextView,Chronometer,DigitalClock,EditText

3

、已知间接子类:

AutoCompleteTextView,CheckBox,CompoundButton,ExtractEditText,

MultiAutoCompleteTextView,RadioButton,ToggleButton

4

XML

属性

属性名称

android:autoLink

android:autoText

描述

设置是否当文本为

URL

链接

/email/

电话号码

/map

时,文

本显示为可点击的链接。可选值

(none/web/email/phone/map/all)

如果设置,将自动执行输入值的拼写纠正。此处无效果,

在显示输入法并输入的时候起作用。

android:bufferType

指定getText()方式取得的文本类别。选项

editable类似于StringBuilder可追加字符,

也就是说getText后可调用append方法设置文本

内容。spannable则可在给定的字符区域使用样

式,参见这里1、这里2。

设置英文字母大写类型。此处无效果,需要弹出输入法才

能看得到,参见

EditView

此属性说明。

设定光标为显示/隐藏,默认显示。

设置允许输入哪些字符。如“1234567890.+-*/%n()”

在text的下方输出一个drawable,如图片。如果指定一个

颜色的话会把

text

的背景设为该颜色,并且同时和

background

使用时覆盖后者。

text

的左边输出一个

drawable

,如图片。

设置text与drawable(图片)的间隔,与drawableLeft、

drawableRight

drawableTop

drawableBottom

一起使用,

可设置为负数,单独使用没有效果。

text

的右边输出一个

drawable

,如图片。

在text的正上方输出一个drawable,如图片。

设置是否可编辑。这里无效果,参见EditView。

设置文本的额外的输入数据。在

EditView

再讨论。

设置当文字过长时,该控件该如何显示。有如下值设

置:

”start”—–

省略号显示在开头;

”end”——

省略号显示

在结尾;”middle”—-省略号显示在中间;”marquee”——

以跑马灯的方式显示

(

动画横向移动

)

设置保存文本的内容以及光标的位置。参见:这里。

设置文本位置,如设置成“center”,文本将居中显示。

可通过

textColorHint

Text

为空时显示的文字提示信息,

置提示信息的颜色。比较奇怪的是TextView本来就相当

于Label,怎么会不设置Text?!

附加功能,设置右下角IME动作与编辑框相关的动作,如

,而不设置默认是

actionDone

右下角将显示一个“完成”

一个回车符号。这个在

EditView

中再详细说明,此处无用。

设置

IME

动作

ID

。在

EditView

再做说明,可以先看这篇

帖子:这里。

设置IME动作标签。在EditView再做说明。

设置文本是否包含顶部和底部额外空白,默认为

true

为文本指定输入法,需要完全限定名(完整的包名)。例

如:

,但是这里报

错找不到。

设置文本的类型,用于帮助输入法显示合适的键盘类型。

在EditView中再详细说明,这里无效果。

设置链接是否点击连接,即使设置了autoLink。

android:capitalize

android:cursorVisible

android:digits

android:drawableBottom

android:drawableLeft

android:drawablePadding

android:drawableRight

android:drawableTop

android:editable

android:editorExtras

android:ellipsize

android:freezesText

android:gravity

android:hint

android:imeOptions

android:imeActionId

android:imeActionLabel

android:includeFontPadding

android:inputMethod

android:inputType

android:linksClickable

ellipsize指定marquee的情况下,设置重复滚

android:marqueeRepeatLimit

动的次数,当设置为marquee_forever时表示无限

次。

设置TextView的宽度为N个字符的宽度。这里测试为一

android:ems

个汉字字符宽度,如图:

设置

TextView

的宽度为最长为

N

个字符的宽度。与

ems

同时使用时覆盖ems选项。

设置TextView的宽度为最短为N个字符的宽度。与ems

同时使用时覆盖ems选项。

限制显示的文本长度,超出部分不显示。

设置文本的行数,设置两行就显示两行,即使第二行没有

数据。

设置文本的最大显示行数,与width或者layout_width结

合使用,超出部分自动换行,超出行数将不显示。

设置文本的最小行数,与lines类似。

设置行间距。

设置行间距的倍数。如”1.2”

如果被设置,该

TextView

有一个数字输入法。此处无用,

设置后唯一效果是TextView有点击效果,此属性在

EdtiView

将详细说明。

以小点”.”显示文本

设置为电话号码的输入方式。

设置输入法选项,此处无用,在

EditText

将进一步讨论。

android:maxEms

android:minEms

android:maxLength

android:lines

android:maxLines

android:minLines

android:lineSpacingExtra

android:lineSpacingMultiplier

android:numeric

android:password

android:phoneNumber

android:privateImeOptions

android:scrollHorizontally

android:selectAllOnFocus

android:shadowColor

android:shadowDx

android:shadowDy

android:shadowRadius

设置文本超出TextView的宽度的情况下,是否出

现横拉条。

如果文本是可选择的,让他获取焦点而不是将光标移动为

文本的开始位置或者末尾位置。TextView中设置后无效

果。

指定文本阴影的颜色,需要与

shadowRadius

一起使用。

效果:

设置阴影横向坐标开始位置。

设置阴影纵向坐标开始位置。

设置阴影的半径。设置为

0.1

就变成字体的颜色了,一般

设置为

3.0

的效果比较好。

设置单行显示。如果和layout_width一起使用,当文本不

能全部显示时,后面用“

”来表示。如

android:text="test_

singleLine"android:singleLine="true"

android:layout_width="20dp"将只显示“t…”。如果不设置

singleLine或者设置为false,文本将自动换行

设置显示文本.

android:singleLine

android:text

设置文字外观。如

“?android:attr/textAppearanceLargeInverse

android:textAppearance

”这里引用的是系统自带的一个外观,?表示系统是否有

这种外观,否则使用默认的外观。可设置的值如下:

textAppearanceButton/textAppearanceInverse/textAppeara

nceLarge/textAppearanceLargeInverse/textAppearanceMedi

um/textAppearanceMediumInverse/textAppearanceSmall/t

android:textColor

android:textColorHighlight

android:textColorHint

android:textColorLink

extAppearanceSmallInverse

设置文本颜色

被选中文字的底色,默认为蓝色

设置提示信息文字的颜色,默认为灰色。与hint一起使用。

文字链接的颜色

.

设置文字之间间隔,默认为1.0f。分别设置

0.5f/1.0f/1.5f/2.0f

效果如下:

android:textScaleX

android:textSize

android:textStyle

android:typeface

android:height

android:maxHeight

android:minHeight

android:width

android:maxWidth

android:minWidth

二、EditText

1

、结构

设置文字大小,推荐度量单位”sp”,如”15sp”

设置字形

[bold(

粗体

)0,italic(

斜体

)1,bolditalic(

又粗又斜

)

2]

可以设置一个或多个,用“

|

”隔开

设置文本字体,必须是以下常量值之一:

normal0,sans1,

serif2,monospace(

等宽字体

)3]

设置文本区域的高度,支持度量单位:px(像

)/dp/sp/in/mm(

毫米

)

设置文本区域的最大高度

设置文本区域的最小高度

设置文本区域的宽度,支持度量单位:

px(

素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。

设置文本区域的最大宽度

设置文本区域的最小宽度

ew

xt

已知直接子类:

AutoCompleteTextView,ExtractEditText

已知间接子类:

MultiAutoCompleteTextView

2、xml属性

属性名称

android:au

toLink

android:au

toText

android:bu

fferType

描述

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选

值(none/web/email/phone/map/all)。这里只有在同时设置text时才自动识别链接,

后来输入的无法自动识别。

自动拼写帮助。这里单独设置是没有效果的,可能需要其他输入法辅助才行,效果参见视

频。

指定getText()方式取得的文本类别。选项editable类似于StringBuilder可追加字符,

也就是说getText后可调用append方法设置文本内容。spannable则可在给定的字符区

域使用样式,参见这里1、这里2。

android:ca

pitalize

android:cu

rsorVisible

android:di

gits

设置英文字母大写类型。设置如下值:sentences仅第一个字母大写;words每一个单词

首字母大小,用空格区分单词;characters每一个英文字母都大写。在模拟器上用PC键

盘直接输入可以出效果,但是用软键盘无效果。

设定光标为显示/隐藏,默认显示。如果设置false,即使选中了也不显示光标栏。

设置允许输入哪些字符。如“1234567890.+-*/%n()”

在text的正上方输出一个drawable。在EditView中的效果比较搞笑:

android:dr

awableTop

,居然在文本框里,而且删不了。

android:dr

awableBot

tom

android:dr

awableLef

t

android:dr

awablePad

ding

android:dr

awableRig

ht

android:ed

itable

android:ed

itorExtras

android:ell

ipsize

android:fr

eezesText

android:gr

avity

android:hi

nt

在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设

为该颜色,并且同时和background使用时覆盖后者。

在text的左边输出一个drawable(如图片)。

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、

drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

在text的右边输出一个drawable,如图片。

设置是否可编辑。仍然可以获取光标,但是无法输入。

指定特定输入法的扩展,如“_FIELD”。源码跟踪至

,暂无相关实现代码。

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开

头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee”——以

跑马灯的方式显示(动画横向移动)

设置保存文本的内容以及光标的位置。参见:这里。

设置文本位置,如设置成“center”,文本将居中显示。

Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。

设置软键盘的Enter键。有如下值可设置:normal,actionUnspecified,actionNone,

actionGo

,actionSearch,actionSend,actionNext,actionDone

,flagNoExtractUi,flagNoAccessoryAction,flagNoEnterAction。可用’|’设置多个。

这里仅设置显示图标之用,参见文章末尾例子。

设置IME动作ID,在onEditorAction中捕获判断进行逻辑操作。

设置IME动作标签。但是不能保证一定会使用,猜想在输入法扩展的时候应该有用。

android:im

eOptions

android:im

eActionId

android:im

eActionLa

bel

android:in

cludeFont

Padding

android:in

putMethod

设置文本是否包含顶部和底部额外空白,默认为true。

为文本指定输入法,需要完全限定名(完整的包名)。例如:

,但是这里报错找不到。关于自定义输入法

参见这里。

设置文本的类型,用于帮助输入法显示合适的键盘类型。有如下值设置:none、text、

textCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences

仅第一个字母大小、textAutoCorrect、textAutoComplete自动完成、textMultiLine

多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、

textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage

短信息(会多一个表情按钮出来,点开如下图:

android:in

putType

)、textLongMessage长讯息?、textPersonName人名、textPostalAddress地址、

textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表

单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号

数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间

日期、date日期、time时间。部分参考这里。

android:m

arqueeRep

eatLimit

android:e

ms

android:m

axEms

android:mi

nEms

android:m

axLength

android:lin

es

android:m

axLines

android:mi

nLines

android:lin

ksClickabl

e

android:lin

eSpacingE

xtra

在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为

marquee_forever时表示无限次。

设置TextView的宽度为N个字符的宽度。参见TextView中此属性的截图。

设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

限制输入字符数。如设置为5,那么仅可以输入5个汉字/数字/英文字母。

设置文本的行数,设置两行就显示两行,即使第二行没有数据。

设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,

超出行数将不显示。

设置文本的最小行数,与lines类似。

设置链接是否点击连接,即使设置了autoLink。

设置行间距。

android:lin

eSpacingM

ultiplier

android:nu

meric

android:pa

ssword

android:ph

oneNumbe

r

android:pr

ivateImeO

ptions

android:sc

rollHorizo

ntally

android:se

lectAllOnF

ocus

android:sh

adowColor

android:sh

adowDx

android:sh

adowDy

android:sh

adowRadi

us

android:si

ngleLine

android:te

xt

设置行间距的倍数。如”1.2”

如果被设置,该TextView有一个数字输入法。有如下值设置:integer正整数、signed

带符号整数、decimal带小数点浮点数。

以小点”.”显示文本

设置为电话号码的输入方式。

提供额外的输入法选项(字符串格式)。依据输入法而决定是否提供,如这里所见。自定义

输入法继承

InputMethodService。这篇文章也许有帮助。

设置文本超出TextView的宽度的情况下,是否出现横拉条。

如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。

TextView中设置后无效果。

指定文本阴影的颜色,需要与shadowRadius一起使用。参见TextView中此属性的截

图。

设置阴影横向坐标开始位置。

设置阴影纵向坐标开始位置。

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”

来表示。如android:text="test_singleLine"android:singleLine="true"

android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为

false,文本将自动换行

设置显示文本.

设置文字外观。如“?android:attr/textAppearanceLargeInverse

android:te

xtAppeara

nce

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。

可设置的值如下:

textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAp

pearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInver

se/textAppearanceSmall/textAppearanceSmallInverse

设置文本颜色

android:te

xtColor

android:te

xtColorHig

hlight

android:te

xtColorHin

t

被选中文字的底色,默认为蓝色

设置提示信息文字的颜色,默认为灰色。与hint一起使用。

android:te

xtColorLin

k

android:te

xtScaleX

android:te

xtSize

android:te

xtStyle

android:ty

peface

android:he

ight

android:m

axHeight

android:mi

nHeight

android:wi

dth

android:m

axWidth

android:mi

nWidth

文字链接的颜色.

设置文字之间间隔,默认为1.0f。参见TextView的截图。

设置文字大小,推荐度量单位”sp”,如”15sp”

设置字形[bold(粗体)0,italic(斜体)1,bolditalic(又粗又斜)2]可以设置一个或多个,

用“|”隔开

设置文本字体,必须是以下常量值之一:normal0,sans1,serif2,monospace(等宽

字体)3]

设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

设置文本区域的最大高度

设置文本区域的最小高度

设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width

的区别看这里。

设置文本区域的最大宽度

设置文本区域的最小宽度

补充说明:

a).

由于是继承自

TextView

,所以属性是一样的,但是这里重点补充了输入

法相关的属性说明和研究,部分注释也做了相应的调整。

b).Word格式下载

/source/2664164

3

、例子

3.1

android:imeOptions例子

android:layout_width="100dp"android:layout_height="wrap_con

tent">

((EditText)findViewById(t)).setOnEditorActionListener(

orActionListener(){

@Override

publicbooleanonEditorAction(TextViewv,intactionI

d,

KeyEventevent){

if(actionId==_ACTION_GO){

xt(,"

你点了

Go!",_SHORT).show();

}

returnfalse;

}

});

三、

AccessibilityService

1

、结构

↳t

↳tWrapper

↳e

↳ibilityService

publicabstractclassAccessibilityServiceextendsService

2、类概述

当AccessibilityEvent事件被启动后AccessibilityService会接收回调函数运行于后台,

这些事件指的是在用户接口间的状态转换,比如

,

焦点变化,按钮被点击等。一些辅助服务继承

于此类并且实现它的抽象方法,像这样的一个服务和其他服务一样在中被

声明但它必须被指定操纵

ibilityService的意图,下面的是一段例子:

ce"/>

辅助服务的声明周期只能被系统管理,启动或者停止这个服务必须由明确的用户通过启用

或停用设备的设定,在系统通过呼叫onServiceConnected()方法与服务绑定后,这个方法才

能被想要执行装载的客户端所重载使用,一个辅助服务通过呼叫

setServiceInfo(AccessibilityServiceInfo)

方法来设定

AccessibilityServiceInfo

而配置。

你可以在任何时候改变这个服务的配置但最好是在重载方法

onServiceConnected().

中来使

用。

一个辅助服务可以在特定的包中注册事件以提供特殊的反馈类型并且当最后一个关联的事件被

解除的时候发出明确的超时提醒。

3、通告策略

对于每个回馈类型只有一个辅助服务被通知,服务登记处按顺序被通知,因此,如果有两个服

务为同一个包中的同一回馈类型注册那么第一个会被通知,然而有可能的是,可以为一个给定的

回馈类型去把一个服务注册为默认的,这样的话如果没有其他的服务来取代这个事件这个服务就

会被呼出使用,换句话说,默认的服务不会与其他的服务竞争并且不管注册的顺序而被通知。

4、公共方法:

4.1abstractvoidonAccessibilityEvent(AccessibilityEventevent)

CallbackforAccessibilityEvents.

参数

event

一个事件

4.2publicfinalIBinderonBind(Intentintent)

实现返回一个内部的辅助接口的实现,子类不能被重写。

参数

intent

与服务相绑定的意图,注意其他任何包含在

Intent

的外部意图将不能在此使用。

返回值

4.3

返回一个客户端可以在服务上访问的IBinder。

publicabstractvoidonInterrupt()

打断辅助回馈内容时呼叫。

5、保护方法:

5.1protectedvoidonServiceConnected()

这个方法是AccessibilityService声明周期的一部分,在系统成功与服务绑定后才被呼叫,

如果用来设定

AccessibilityServiceInfo.

这个方法更为方便。

四、Mainfest

1

、结构

↳st

publicfinalclassManifestextendsObject

内部类

sion

sion_group

2、sion的常量

ACCESS_CHECKIN_PROPERTIES

ACCESS_COARSE_LOCATION

ACCESS_FINE_LOCATION

ACCESS_LOCATION_EXTRA_COMMANDS

ACCESS_MOCK_LOCATION

ACCESS_NETWORK_STATE

ACCESS_SURFACE_FLINGER

ACCESS_WIFI_STATE

ACCOUNT_MANAGER

AUTHENTICATE_ACCOUNTS

BATTERY_STATS

BIND_APPWIDGET

允许在登入数据库的时候读写其中的属性表,

并上传改变的值

允许应用访问范围(如WIFI)性的定位

允许应用访问精确(如GPS)性的定位

允许应访问额外的提供定位的指令

允许应用创建用于测试的模拟定位提供者

允许应用访问网络上的信息

允许应用使用低版本视图的特征

允许应用访问关羽Wi-Fi网络的信息

允许应用进入帐户认证

允许应用为ACCOUNT_MANAGER扮演一个帐户认

证系统

允许应用去统计电源信息

允许应用告诉AppWidget哪个应用能够访问该

AppWidget的数据

BIND_DEVICE_ADMIN

BIND_INPUT_METHOD

BIND_WALLPAPER

BLUETOOTH

BLUETOOTH_ADMIN

BRICK

BROADCAST_PACKAGE_REMOVED

BROADCAST_SMS

BROADCAST_STICKY

BROADCAST_WAP_PUSH

CALL_PHONE

必须通过关机接收者的请求来确保只有系统能

够与之交互

必须通过InputMethodService的请求来确保只

有系统能够与之绑定

必须通过WallpaperService的请求来确保只有

系统能够与之绑定

允许应用去连接蓝牙设备

允许应用找到与之连接的蓝牙设备

被请求废止设备(非常危险)

允许应用发出一个程序包被移除的广播消息

允许应用发出一个收到短信的消息

允许应用发出一个与intent相连的消息

允许应用发出一个收到WAPPUSH的广播消息

允许应用启动一个用户确认电话被拨打而不通

过拨打电话的用户界面的的拨打程序

允许应用启动一个用户确认电话被拨打而不通

过拨打电话的用户界面的的任意号码的拨打,

包括紧急号码.

能够启动照相机设备的请求

CALL_PRIVILEGED

CAMERA

CHANGE_COMPONENT_ENABLED_STATE

允许应用去改变一个应用是否是激活状态

CHANGE_CONFIGURATION

CHANGE_NETWORK_STATE

CHANGE_WIFI_MULTICAST_STATE

CHANGE_WIFI_STATE

CLEAR_APP_CACHE

CLEAR_APP_USER_DATA

CONTROL_LOCATION_UPDATES

DELETE_CACHE_FILES

DELETE_PACKAGES

DEVICE_POWER

DIAGNOSTIC

DISABLE_KEYGUARD

允许应用修改当前的配置,如本地设置

允许应用改变网络的连接状态

允许应用进入Wi-Fi的组播方式

允许应用改变Wi-Fi的连接状态

允许应用清除所有安装在设备上的应用的缓存

允许应用清除使用者的信息资料

允许从广播设备来更新或不更新本地的消息

允许应用删除掉缓存文件

允许应用删除掉程序包

允许低权限的访问电源管理项

允许应用诊断程序资源

允许应用禁用键盘锁

DUMP

EXPAND_STATUS_BAR

FACTORY_TEST

FLASHLIGHT

FORCE_BACK

GET_ACCOUNTS

GET_PACKAGE_SIZE

GET_TASKS

GLOBAL_SEARCH

HARDWARE_TEST

INJECT_EVENTS

INSTALL_LOCATION_PROVIDER

INSTALL_PACKAGES

INTERNAL_SYSTEM_WINDOW

INTERNET

KILL_BACKGROUND_PROCESSES

MANAGE_ACCOUNTS

MANAGE_APP_TOKENS

MASTER_CLEAR

MODIFY_AUDIO_SETTINGS

MODIFY_PHONE_STATE

MOUNT_FORMAT_FILESYSTEMS

MOUNT_UNMOUNT_FILESYSTEMS

PERSISTENT_ACTIVITY

PROCESS_OUTGOING_CALLS

READ_CALENDAR

允许应用从系统服务中恢复转储的信息

允许应用扩大或缩小状态栏

如制造商测试的应用一样用终极权限用户运行

允许访问手电筒

允许应用强制的返回操作而不论是不是最终的

activity

允许应用访问账目服务中的统计清单

允许应用查找出任何程序包使用的空间

允许应用找到关于当前或最近运行的任务和在

哪些acitivities里运行

这个权限可以被内容提供者用来允许使用全程

搜索他们的数据

允许访问硬件及周边设备.

允许应用注入用户事件(键盘、触摸)到事件

中然后提供给任意的窗口

允许应用安装一个位置提供商到位置管理器中

允许应用安装程序包.

允许应用打开被部分系统用户接口使用的窗口

允许应用打开网络套接口

允许应用去呼叫

killBackgroundProcesses(String).方法

允许应用去管理帐户管理者中的重要清单

允许应用去管理(创建、销毁、顺序)在窗口管

理者中的应用

允许应用修改全局音频设定

允许改变拨打电话的状态-电源等

允许格式化可移除的存储仓库的文件系统

允许装备或解除可移除的存储仓库的文件系统

允许应用使它的activities更持久稳固

允许应用监督、限定或终止呼出的电话

允许应用读取用户的日历数据

READ_CONTACTS

READ_FRAME_BUFFER

READ_HISTORY_BOOKMARKS

READ_INPUT_STATE

READ_LOGS

READ_OWNER_DATA

READ_PHONE_STATE

READ_SMS

READ_SYNC_SETTINGS

READ_SYNC_STATS

REBOOT

RECEIVE_BOOT_COMPLETED

RECEIVE_MMS

RECEIVE_SMS

RECEIVE_WAP_PUSH

RECORD_AUDIO

REORDER_TASKS

RESTART_PACKAGES

SEND_SMS

SET_ACTIVITY_WATCHER

SET_ALWAYS_FINISH

SET_ANIMATION_SCALE

SET_DEBUG_APP

SET_ORIENTATION

SET_PREFERRED_APPLICATIONS

SET_PROCESS_LIMIT

SET_TIME

SET_TIME_ZONE

允许应用读取用户的联系人数据

允许应用抓取屏幕和更多可获得的缓冲数据

允许应用去读取(非写)用户浏览历史和书签

允许应用去的当前键盘和控制的状态

允许应用读取低级别的系统日志文件

允许应用读取所有者的数据

允许读取电话的状态

允许应用读取短信息.

允许应用读取同步的设置

允许应用读取同步的统计数据

重新启动设备的请求

允许应用接收在系统完成启动后发出的

ACTION_BOOT_COMPLETED广播信息

允许应用去监听多媒体信息并记录和对起进行

处理

允许应用去监听短消息并记录和对起进行处理

允许应用监听WAPpush信息

允许应用记录音频信息

允许应用改变任务的关系位置

已废弃使用

允许应用发送短消息.

允许应用查看和控制activities是怎样在系统

中运行的

允许应用去控制当activities被覆盖后是否是

立即接触结束

改变动画的比例因子

设置一个应用为调试模式

允许低级别的设置屏幕的方向

已废弃

允许应用设置可以运行的最大数的应用进程

允许应用设置系统时间

允许应用设置系统时区时间

SET_WALLPAPER

SET_WALLPAPER_HINTS

SIGNAL_PERSISTENT_PROCESSES

STATUS_BAR

SUBSCRIBED_FEEDS_READ

SUBSCRIBED_FEEDS_WRITE

SYSTEM_ALERT_WINDOW

UPDATE_DEVICE_STATS

USE_CREDENTIALS

VIBRATE

WAKE_LOCK

WRITE_APN_SETTINGS

WRITE_CALENDAR

WRITE_CONTACTS

WRITE_EXTERNAL_STORAGE

WRITE_GSERVICES

WRITE_HISTORY_BOOKMARKS

WRITE_OWNER_DATA

WRITE_SECURE_SETTINGS

WRITE_SETTINGS

WRITE_SMS

WRITE_SYNC_SETTINGS

3

sion_group

的常量

允许应用设置壁纸

允许应用设置锁定的壁纸

允许应用发出一个给所有稳定进程信号的请求

允许应用打开、关闭或使状态栏或图标失去作

允许应用访问内容提供者的签署认证

允许应用使用TYPE_SYSTEM_ALERT来打开窗口,

并将窗口显示于其他应用的顶端

允许应用更新设备资料信息

允许应用从管理器得到授权请求

允许应用访问震动器

允许使用电源锁定管理以使进程休眠或屏幕变

允许应用去写入接入点设置

允许应用写(非读)用户的日历数据

允许应用写(非读)用户的联系人数据

允许应用写(非读)用户的外部存储器

允许应用修改Google服务地图

允许应用写(非读)用户的浏览器历史和书签

允许应用写(非读)用户的数据

允许应用写或读当前系统设置

允许应用写或读系统设置

允许应用写短消息信息

允许应用写同步设置

ACCOUNTS

COST_MONEY

DEVELOPMENT_TOOLS

HARDWARE_CONTROLS

直接通过统计管理器访问管理的统计

可以用来让用户花钱但不需要通过与他们直接牵

涉的权限

与开发联盟特征相连的权限组

被用来提供直接访问硬件设备的权限

LOCATION

MESSAGES

NETWORK

PERSONAL_INFO

PHONE_CALLS

STORAGE

SYSTEM_TOOLS

五、View

1

、结构

用来允许访问用户的当前位置的权限

用来允许应用发送用户收到的被拦截的信息

用来提供访问网络服务的权限

用于提供访问用户私人数据如联系人、日历、电子

邮件等的权限

用于跟访问和修改拨号状态如截取去话信息、读取

和修改电话状态等的权限

与SD卡访问相关联的权限组

与系统API有关联的权限组

已知直接子类:

AnalogClock,ImageView,KeyboardView,ProgressBar,SurfaceView,TextView,

ViewGroup,ViewStub

已知间接子类:

AbsListView,AbsSeekBar,AbsSpinner,AbsoluteLayout,AdapterView

Adapter>,AppWidgetHostView,AutoCompleteTextView,Button,CheckBox,CheckedTextView,

Chronometer,CompoundButton,DatePicker,DialerFilter,DigitalClock,EditText,

ExpandableListView,ExtractEditText,FrameLayout,GLSurfaceView,Gallery,GestureOverlayView,

GridView,HorizontalScrollView,ImageButton,ImageSwitcher,LinearLayout,ListView,

MediaController,MultiAutoCompleteTextView,QuickContactBadge,RadioButton,RadioGroup,

RatingBar,RelativeLayout,ScrollView,SeekBar,SlidingDrawer,Spinner,TabHost,TabWidget,

TableLayout,TableRow,TextSwitcher,TimePicker,ToggleButton,TwoLineListItem,VideoView,

ViewAnimator,ViewFlipper,ViewSwitcher,WebView,ZoomButton,ZoomControls

2、xml属性

属性名称描述

设置背景色/背景图片。可以通过以下两种方法设置背景为透明:

"@android:color/transparent"和"@null"。注意TextView默

认是透明的,不用写此属性,但是

Buttom/ImageButton/ImageView想透明的话就得写这个属

性了。

是否响应点击事件。

设置View的备注说明,作为一种辅助功能提供,为一些没有文字

描述的View提供说明,如ImageButton。这里在界面上不会有

效果,自己在程序中控制,可临时放一点字符串数据。

设置绘图时半透明质量。有以下值可设置:auto(默认,由框架

决定)/high(高质量,使用较高的颜色深度,消耗更多的内存/low

(低质量,使用较低的颜色深度,但是用更少的内存)。

android:background

android:clickable

android:contentDescription

android:drawingCacheQualit

y

android:duplicateParentStat

e

如果设置此属性,将直接从父容器中获取绘图状态(光标,按下

等)。见下面代码部分,注意根据目前测试情况仅仅是获取绘图

状态,而没有获取事件,也就是你点一下LinearLayout时Button

有被点击的效果,但是不执行点击事件。

设置拉滚动条时,边框渐变的放向。

none(边框颜色不变),

android:fadingEdge

horizontal(水平方向颜色变淡),vertical(垂

直方向颜色变淡)。参照fadingEdgeLength的效

果图

android:fadingEdgeLength

设置边框渐变的长度。

android:fitsSystemWindows

设置布局调整时是否考虑系统窗口(如状态栏)

设置是否获得焦点。若有requestFocus()被调用时,后者优先处

理。注意在表单中想设置某一个如EditText获取焦点,光设置这

个是不行的,需要将这个EditText前面的focusable都设置为

false才行。在Touch模式下获取焦点需要设置

focusableInTouchMode为true。

设置在Touch模式下View是否能取得焦点。

设置长按时是否接受其他触摸反馈事件。这里模拟器没有试出效

果,难道是多点触摸?找不到资料可以找找

performHapticFeedback或HapticFeedback这个关键字的资

料看看。

给当前View设置一个在当前中的唯一编号,可以通

过调用ewById()或ewById()根据

这个编号查找到对应的View。不同的之间定义相同

的id不会冲突。格式如”@+id/btnName”

设置当前View为滚动容器。这里没有测试出效果来,ListView/

GridView/ScrollView根本就不用设置这个属性,而EdidText

android:focusable

android:focusableInTouchMo

de

android:hapticFeedbackEnab

led

android:id

android:isScrollContainer

设置android:scrollbars也能出滚动条。

View在可见的情况下是否保持唤醒状态。常在LinearLayout使

用该属性,但是模拟器这里没有效果。

android:keepScreenOn

android:longClickable

android:minHeight

android:minWidth

设置是否响应长按事件.

设置视图最小高度

设置视图最小宽度度

设置下方指定视图获得下一个焦点。焦点移动是基于一个在给定方

向查找最近邻居的算法。如果指定视图不存在,移动焦点时将报运

行时错误。可以设置imeOptions=actionDone,这样输入完即

跳到下一个焦点。

设置左边指定视图获得下一个焦点。

设置右边指定视图获得下一个焦点。

设置上方指定视图获得下一个焦点。

点击时从上下文中调用指定的方法。这里指定一个方法名称,一般

在Activity定义符合如下参数和返回值的函数并将方法名字符串

指定为该值即可:

publicvoidonClickButton(Viewview)

android:onClick=”onClickButton”

设置上下左右的边距,以像素为单位填充空白。

android:nextFocusDown

android:nextFocusLeft

android:nextFocusRight

android:nextFocusUp

android:onClick

android:padding

android:paddingBottom

设置底部的边距,以像素为单位填充空白。

设置左边的边距,以像素为单位填充空白。

android:paddingLeft

设置右边的边距,以像素为单位填充空白。

android:paddingRight

设置上方的边距,以像素为单位填充空白。

android:paddingTop

android:saveEnabled

android:scrollX

android:scrollY

android:scrollbarAlwaysDra

w

HorizontalTrack

android:scrollbarAlwaysDra

w

VerticalTrack

android:scrollbarDefault

DelayBeforeFade

android:scrollbarFadeDurati

on

android:scrollbarSize

android:scrollbarStyle

设置是否在窗口冻结时(如旋转屏幕)保存View的数据,默认为

true,但是前提是你需要设置id才能自动保存,参见这里。

以像素为单位设置水平方向滚动的的偏移值,在GridView中可看

的这个效果。

以像素为单位设置垂直方向滚动的的偏移值

设置是否始终显示垂直滚动条。这里用ScrollView、ListView测

试均没有效果。

设置是否始终显示垂直滚动条。这里用ScrollView、ListView测

试均没有效果。

设置N毫秒后开始淡化,以毫秒为单位。

设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒

为单位。Android2.2中滚动条滚动完之后会消失,再滚动又会出

来,在1.5、1.6版本里面会一直显示着。

设置滚动条的宽度。

设置滚动条的风格和位置。设置值:insideOverlay、insideInset、

outsideOverlay、outsideInset。这里没有试出太多效果,以下

依次是outsideOverlay与outsideInset效果截图比较:

设置水平滚动条的drawable。

android:scrollbarThumbHori

zontal

设置垂直滚动条的drawable.

android:scrollbarThumbVerti

cal

android:scrollbarTrackHorizo

设置水平滚动条背景(轨迹)的色drawable

ntal

设置垂直滚动条背景(轨迹)的drawable注意直

设置颜色值如”android:color/white”将得出

很难看的效果,

甚至都不理解这个属性了,这里可以

参见ApiDemos里res/drawable/

scrollbar_vertical_和

scrollbar_vertical_,设置代码为:

android:scrollbarTrackVertical

="@drawable/scrollbar_vertical_track"

android:scrollbarTrackVertic

al

android:scrollbars

设置滚动条显示。none(隐藏),horizontal(水平),vertical

(垂直)。见下列代码演示使用该属性让EditText内有滚动条。

但是其他容器如LinearLayout设置了但是没有效果。

android:soundEffectsEnable

d

设置点击或触摸时是否有声音效果

设置一个文本标签。可以通过()或forwith

android:tag

ewWithTag()检索含有该标签字符串的View。但

一般最好通过ID来查询View,因为它的速度更快,并且允

许编译时类型检查。

android:visibility

设置是否显示View。设置值:visible(默认值,显示),invisible

(不显示,但是仍然占用空间),gone

(不显示,不占用空间)

3、公共方法(部分)

booleanawakenScrollBars()

booleanawakenScrollBars(intstartDelay,booleaninvalidate)

booleanawakenScrollBars(intstartDelay)

intcomputeHorizontalScrollExtent()

intcomputeHorizontalScrollOffset()

intcomputeHorizontalScrollRange()

intcomputeVerticalScrollExtent()

intcomputeVerticalScrollOffset()

intcomputeVerticalScrollRange()

voiddispatchDraw(Canvascanvas)

voiddispatchRestoreInstanceState(SparseArraycontainer)

voiddispatchSaveInstanceState(SparseArraycontainer)

voiddispatchSetPressed(booleanpressed)

voiddispatchSetSelected(booleanselected)

voiddispatchVisibilityChanged(ViewchangedView,intvisibility)

voiddrawableStateChanged()

booleanfitSystemWindows(Rectinsets)

floatgetBottomFadingEdgeStrength()

intgetBottomPaddingOffset()

tMenuInfogetContextMenuInfo()

intgetHorizontalScrollbarHeight()

floatgetLeftFadingEdgeStrength()

intgetLeftPaddingOffset()

floatgetRightFadingEdgeStrength()

intgetRightPaddingOffset()

intgetSuggestedMinimumHeight()

intgetSuggestedMinimumWidth()

floatgetTopFadingEdgeStrength()

intgetTopPaddingOffset()

intgetWindowAttachCount()

voidinitializeFadingEdge(TypedArraya)

voidinitializeScrollbars(TypedArraya)

booleanisPaddingOffsetRequired()

staticint[]mergeDrawableStates(int[]baseState,int[]additionalState)

voidonAnimationEnd()

voidonAnimationStart()

voidonAttachedToWindow()

voidonConfigurationChanged(ConfigurationnewConfig)

voidonCreateContextMenu(ContextMenumenu)

int[]onCreateDrawableState(intextraSpace)

voidonDetachedFromWindow()

voidonDisplayHint(inthint)

voidonDraw(Canvascanvas)

finalvoidonDrawScrollBars(Canvascanvas)

voidonFinishInflate()

voidonFocusChanged(booleangainFocus,intdirection,Rect

previouslyFocusedRect)voidonLayout(booleanchanged,intleft,inttop,

intright,intbottom)

voidonMeasure(intwidthMeasureSpec,intheightMeasureSpec)

voidonRestoreInstanceState(Parcelablestate)

ParcelableonSaveInstanceState()

voidonScrollChanged(intl,intt,intoldl,intoldt)

booleanonSetAlpha(intalpha)

voidonSizeChanged(intw,inth,intoldw,intoldh)

voidonVisibilityChanged(ViewchangedView,intvisibility)

voidonWindowVisibilityChanged(intvisibility)

finalvoidsetMeasuredDimension(intmeasuredWidth,int

measuredHeight)

booleanverifyDrawable(Drawablewho)

4

、代码

4.1android:duplicateParentState

f"android:layout_width="100dp"android:layout_height="100dp">

t_width="wrap_content"android:layout_height="wrap_content"/>

4.2android:scrollbars

android:layout_height="wrap_content"android:minHeight="50dp"

android:background="@android:drawable/editbox_background"

android:scrollbars="vertical"

android:maxLines="4">

5

、遗留问题

5.1

以下几个属性翻遍了资料试了很多次都没有效果,只能暂时搁置,以后补上,也欢迎的

大家提供意见和线索,分享大家的经验:

android:scrollbarAlwaysDrawHorizontalTrack

android:scrollbarAlwaysDrawVerticalTrack

android:isScrollContainer

六、

ImagesView

2、结构

已知直接子类:

iew

ImageButton,QuickContactBadge

已知间接子类:

ZoomButton

2、

类概述

显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片

库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)

各种显示选项。

3

XML

属性

属性名称

android:adjustViewBounds

描述

是否保持宽高比。需要与maxWidth、MaxHeight一起使用,

否则单独使用没有效果。

是否截取指定区域用空白代替。单独设置无效果,需要与scrollY

一起使用,效果如下,实现代码见代码部分:

android:cropToPadding

设置View的最大高度,单独使用无效,需要与

setAdjustViewBounds一起使用。如果想设置图片固定大小,

又想保持图片宽高比,需要如下设置:

android:maxHeight

1)设置setAdjustViewBounds为true;

2)设置maxWidth、MaxHeight;

3)设置设置layout_width和layout_height为wrap_content。

android:maxWidth

设置View的最大宽度。同上。

设置图片的填充方式。

matrix

android:scaleType

fitXY1

0

用矩阵来绘图

拉伸图片(不按比例)以

填充View的宽高

layout_

height

:30px

fitStart2

按比例拉伸图片,拉伸后

图片的高度为View的

高度,且显示在View的

左边

layout_

width

:120px

fitCenter3

按比例拉伸图片,拉伸后

图片的高度为View的

高度,且显示在View的

中间

fitEnd4

按比例拉伸图片,拉伸后

图片的高度为View的

高度,且显示在View的

右边

按原图大小显示图片,但

图片宽高大于View的

宽高时,截图图片中间部

center5

layout_

height

:60px

layout_

width

示。

当原图宽高或等于View

的宽高时,按原图大小居

中显示;反之将原图缩放

至View的宽高居中显

:80px

padding

:10px

分显示

按比例放大原图直至等

于某边View的宽高显

centerCrop6

centerInside7

示。

android:src

设置View的drawable(如图片,也可以是颜色,但是需要指定

View的大小)

将图片渲染成指定的颜色。见下图:

android:tint

左边为原图,右边为设置后的效果,见后面代码。

4

、代码

4.1android:tint

"@drawable/btn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

="@android:color/white"android:tint="#ffff00"android:src="@draw

able/btn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

4.2android:cropToPadding

llY="-10px"android:cropToPadding="true"android:src="@drawable/b

tn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

scrollY="10px"android:cropToPadding="true"android:src="@drawabl

e/btn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

droid:color/white"android:scrollY="10px"android:cropToPadding="

true"android:src="@drawable/btn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

roid:color/white"android:scrollY="10px"android:cropToPadding="f

alse"android:src="@drawable/btn_mode_switch_bg"

android:layout_width="wrap_content"android:layout_height

="wrap_content">

七、

ImageButton

1

、结构

↳iew

↳utton

已知直接子类:

ZoomButton

2、类摘要

显示一个可以被用户点击的图片按钮,默认情况下,

ImageButton

看起来像一个普通

的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过XML

元素的

android:src

属性或

setImageResource(int)

方法指定。

要删除按钮的背景,可以定义自己的背景图片或设置背景为透明。(注:请看

原图和图片按钮,默认图片周围有按钮的背景,选中之后为黄色)

为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例

如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时

显示的图片。一个简单的方法可以做到这点——通过XML的"selector."配置,如下:

保存上面的XML到

res/drawable/

文件夹下(注:注意文件名大小写!),将该文

件名作为一个参数设置到ImageButton的android:src属性(注:如xml文件名为

,那么这里设置为

"@drawable/myselector"

,设置

android:background

也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的

图片以显示。

元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为

什么正常(默认)状态指定的图片放在最后,是因为它只会在

pressed

focused

都判断失败

之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,

所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,

且不再在后面查找其他状态。)

参见FormStufftutorial。

3、继承自父类的方法

publicvoidsetAlpha(intalpha)

设置

ImageButton

图片的透明度(注意不是背景图片的)。效果如图:

参数

alpha透明值0~255,0为完全透明,255为完全不透明

八、

QuickContactBadge

1

、结构

↳iew

↳ontactBadge

2、截图

说明:

在andorid自带的ApiDomos的例子中有这个的代码:

App/Activity/QuickContacktsDemo

。注意需要

_CONTACTS

权限,并且

联系人里面有数据,并且联系人需要有手机号码,不然出来是一个空的(看代码可知)。

3

、公共方法

publicvoidassignContactFromEmail(StringemailAddress,boolean

lazyLookup)

指定联系人的电子邮箱地址。(注:它会先搜索这个号码,如果没有会提醒你是否添加到

联系人,参见文章1)

参数

emailAddress联系人的电子邮箱地址

lazyLookup

如果设置为

true

,将不会立即查找这个邮箱地址,直到

View

被点击时。(注:是否延迟匹配电子邮件)

publicvoidassignContactFromPhone(StringphoneNumber,boolean

lazyLookup)

为联系人指定一个电话号码。(注:参见文章1)

参数

phoneNumber联系人的电话号码

lazyLookup

被点击时。

publicvoidassignContactUri(UricontactUri)

指定和

QuickContactBadge

关联的联系人

URI

。注意,这里只是显示

QuickContact

窗口,并不为你绑定联系人图片。

参数

contactUri

格的

URI.

publicvoidonClick(Viewv)

当View被点击时调用。

参数

v被点击的View.

publicvoidsetExcludeMimes(String[]excludeMimes)

设置一组要排除不显示的

MIMI

类型列表。例如,可以隐藏

T_ITEM_TYPE类型的图标。(注:如果像如下设置:

setExcludeMimes(newString[]{T_ITEM_TYPE})

即隐藏了上面截图的第二个,仅显示电话和短信两个图标)

publicvoidsetMode(intsize)

设置

QuickContact

的窗口模式。如下选项:

MODE_SMALL

MODE_MEDIUM

MODE_LARGE

。(注:默认为

_MEDIUM

,设置为

MODE_LARGE

会同时显示联系人名称)

CONTENT_URI或CONTENT_LOOKUP_URI其中一种风

如果设置为true,将不会立即查找这个电话号码,直到View

九、

ZoomButton

1、类结构

↳iew

↳utton

↳tton

publicclassZoomButtonextendsImageButtonimplements

ClickListener

2

、概述

缩放按钮,实际上是很普通的两个按钮,可以简单的理解为一个ImageButton加上

一张缩放的图标。如下代码:

3、公共方法

publicbooleandispatchUnhandledMove(Viewfocused,intdirection)

对于获得焦点的

View

,这个方法是捕获箭头事件最后的机会。这就是在获取焦点的

View没有在内部处理、系统在要求的方向也不能找到一个新的View让其获得焦点时调用。

参数

focused当前焦点View

direction焦点移动的方向。其中之一:FOCUS_UP,FOCUS_DOWN,

FOCUS_LEFT和FOCUS_RIGHT.

返回值

如果为

true

,将清除这个

View

未处理的事件。

(注:从源码中可看出ZoomButton覆盖了父类的该方法,在super之前调用了一下

clearFocus,如下代码:

publicbooleanonKeyUp(intkeyCode,KeyEventevent)

默认实现至ultiple():当点击执行时

KEYCODE_DPAD_CENTER或KEYCODE_ENTER被释放。

参数

keyCode按下按钮代表的键值,属于KeyEvent(注:KeyEvent的静

态属性)。

event

返回值

如果您处理这一事件中,返回true。如果你想允许事件被下一个接收器

处理,返回false。

publicbooleanonLongClick(Viewv)

当一个

View

被长按时调用。

参数

v

返回值

如果返回

true

,这个回调在长按时被执行了,反之返回

false.

publicbooleanonTouchEvent(MotionEventevent)

实现这个方法处理触摸屏移动事件。

参数

event

返回值

如果是true,该事件是触摸,反之返回false。

publicvoidsetEnabled(booleanenabled)

设置这个

View

启用状态。

参数

enabled设置true表示启用,反之表示禁用。

publicvoidsetZoomSpeed(longspeed)

(注:单独使用无实际意义,可以用来存放临时数据)

该移动事件.

被长按的View。

该KeyEvent对象,定义按钮动作

十、

CheckBox

1、类结构

publicclassCheckBoxextendsCompoundButton

↳ew

↳ndButton

2、概述

ox

复选框是一种有双状态按钮的特殊类型,可以选中或者不选中。如下是一个在

activity

中使用复选框的例子:

十一、

RadioButton

1、结构

publicclassRadioButtonextendsCompoundButton

↳ew

ndButton

utton

2、概述

单选按钮是一种双状态的按钮,可以选择或不选中。在单选按钮没有被选中时,用户能

够按下或点击来选中它。但是,与复选框相反,用户一旦选中就不能够取消选中(译者注:可以

通过代码来控制,界面上点击的效果是一旦选中之后就不能取消选中了)。

多个单选按钮通常与

RadioGroup

同时使用。当一个单选组(

RadioGroup

)包含几个

单选按钮时,选中其中一个的同时将取消其它选中的单选按钮。(译者注:示例参见

这里

3、公共方法

publicvoidtoggle()

将单选按钮更改为与当前选中状态相反的状态。

如果这个单选按钮已经选中,这个方法将不切换单选按钮。(译者注:请看源码:

十二、Button

1

、结构

publicclassButtonextendsTextView

↳ew

已知直接子类

CompoundButton

已知间接子类

CheckBox,RadioButton,ToggleButton

2、概述

代表一个按钮部件。用户通过按下按钮,或者点击按钮来执行一个动作。以下是一个按钮在

activity

中典型的应用:

然后,你能在xml布局中通过button的android:onClick属性指定一个方法,以替代在

activity中为button设置OnClickListener。例如:

现在,当用户点击按钮时,

Android

系统调用

activity

selfDestruct(View)

方法。为了

正确执行,这个方法必须是public并且仅接受一个View类型的参数。例如:

3、按钮样式

每个按钮的样式默认为系统按钮的背景

,

不同的设备、不同的平台版本有不同按钮风格。如

你不满意默认的按钮样式,想对其定制以符合您应用程序的设计,那么你能用statelist

drawable

替换按钮的背景图片。一个状态列表

drawable

是一个在

XML

中定义的

drawable

资源,根据当前按钮的状态改变其图片。一旦你在

XML

中定义了一个状态列表

drawable,

你可

以将它应用于你的

android:background

属性。欲了解更多信息和示例,参见

StateList

Drawable.

实现一个按钮的例子可参见

FormStufftutorial

4、XML属性

参见

Button

TextView

View

XML

属性。

十三、

ToggleButton

1

、结构

publicclassToggleButtonextendsCompoundButton

↳ew

↳ndButton

2

、类概述

Button

通过一个带有亮度指示同时默认文本为“

ON

”或“

OFF

”的按钮显示选中

/

未选中

状态。

3、XML属性

属性名称

android:disabledAlpha

描述

设置按钮在禁用时透明度。

android:textOff

android:textOn

未选中时按钮的文本

选中时按钮的文本

4

、公共方法

publicCharSequencegetTextOff()

返回按钮未选中时的文本。

返回值

文本

publicCharSequencegetTextOn()

返回按钮选中时的文本。

返回值

文本

publicvoidsetBackgroundDrawable(Drawabled)

设置指定的可绘制(译者注:如图片)为背景,或删除背景。如果让背景有边距,这个

视图的边距就是背景的边距。然而,当背景被删除时,这个视图的边距不能被触摸。如果需要设

置边距,请使用方法

setPadding(int,int,int,int)

(译者注:如果设置删除背景整个就不显示了,此外设置背景后选中和被选中的图片也不

显示了,如下图:,实现代码:

参数

d

设置可绘制(译者注:如图片)为背景,或设置为空删除背景。

publicvoidsetChecked(booleanchecked)

改变按钮的选中状态。

参数

checkedtrue

让按钮选中,

false

让按钮不选中

publicvoidsetTextOff(CharSequencetextOff)

设置按钮未选中时显示的文本。

参数

textOff文本

publicvoidsetTextOn(CharSequencetextOn)

设置按钮选中时显示的文本。

参数

textOn

5

、受保护方法

文本

protectedvoiddrawableStateChanged()

在视图状态的变化影响到所显示可绘制的状态时调用这个方法。

确保在覆盖时中调用父类方法(译者注:

leStateChanged()

)。

protectedvoidonFinishInflate()

XML

文件加载视图完成时调用。这个函数在加载的最后阶段被调用,所有的子视图已经

被添加。

即使子类重写了onFinishInflate方法,也应该始终确保调用父类方法(译者注:super.

onFinishInflate()),使系统能够调用。

十四、

ViewStub

1

、结构

publicfinalclassViewStubextendsView

2

、类概述

ub

ViewStub

是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布

局资源文件。当ViewStub可见,或者调用inflate()函数时,才会加载这个布局资源文件。该

ViewStub在加载视图时在父容器中替换它本身。因此,ViewStub会一直存在于视图中,直到

调用setVisibility(int)或者inflate()为止。ViewStub的布局参数会随着加载的视图数一同被

添加到ViewStub父容器。同样,你也可以通过使用inflatedId属性来定义或重命名要加载的

视图对象的Id值。例如:

通过"stud"id可以找到被定义的ViewStub对象。加载布局资源文件"mySubTree"

后,ViewStub对象从其父容器中移除。可以通过id"subTree"找到由布局资源"mySubTree"

创建的View。这个视图对象最后被指定为宽120dip,高40dip。执行加载布局资源文件的推

荐方式如下:

inflate()

被调用

,

这个

ViewStub

被加载的视图替代并且返回这个视图对象。这使

得应用程序不需要额外执行findViewById()来获取加载视图的引用。

(译者注:这个类大概意思是用ViewStub类和在XML文件里面指定的布局资源文件

关联起来,让布局资源文件在需要使用的时候再加载上去。主要作用是性能优化,什么时候用什

么时候加载,不用在开始启动的时候一次加载,既可以加快程序的启动速度,又可以节省内存资

源。)

3

、嵌套类

接口ateListener

布局资源文件的通知的监听器。

4、XML属性

属性名称

android:inflatedId

android:layout

相关方法

setInflatedId(int)

setLayoutResource(int)

描述

覆盖待加载视图的id值。

为待加载的资源视图提供一个标识,在

ViewStub变为可见或获取焦点时使用它。(译

者注:要引用的布局资源文件id)

一个用于接收ViewStub已经成功加载

5、构造函数

ViewStub(Contextcontext,intlayoutResource)

创建一个与指定的布局资源文件关联的ViewStub对象。

参数

layoutResource要加载的布局资源文件的id值。

6、公共方法

publicvoiddraw(Canvascanvas)

手动在指定的画布绘制这个视图(及所有其子视图)。这个视图必须在调用这个函数之前

做好了整体布局。当要自己实现一个视图时,不要重载这个方法;相反,你应该重载

onDraw(Canvas)方法。(译者注:主要用于自定义的视图组件的方法。)

参数

canvas这个画布传到那个已渲染的视图对象。

publicintgetInflatedId()

返回加载的布局资源文件的

ID

,如果加载的布局资源文件的

id

NO_ID,

那么这个加

载的View将保留它原来的id值。

相关XML属性

android:inflatedId

返回值

一个正整数来标识这个要加载的视图或者NO_ID将保持加载视图原来

的id。

参见

setInflatedId(int)

publicintgetLayoutResource()

返回加载的布局资源文件的id值。

相关

XML

属性

android:layout

返回值

加载到视图对象的布局资源文件id值。

参见

setLayoutResource(int)

setVisibility(int)

inflate()

publicViewinflate()

加载

getLayoutResource()

方法标识的布局资源,并通过加载布局资源替换父容器中

它自己。

返回值

这个已加载的布局资源文件

.

publicvoidsetInflatedId(intinflatedId)

设置加载视图的ID。如果这个id为NO_ID,这个加载视图保持它原来的id不变。

相关

XML

属性

android:inflatedId

参数

inflatedId

加载视图原来的id。

参见

getInflatedId()

publicvoidsetLayoutResource(intlayoutResource)

设置待加载的布局资源文件,当

ViewStub

被设置为

visible

invisible

或调用

inflate()

时使用。这个在加载布局资源文件时创建的视图用来在父容器中替换它自己。

相关XML属性

android:layout

参数

layoutResource

参见

getLayoutResource()

setVisibility(int)

inflate()

一个有效的布局资源文件id值(不等于0)。

一个正整数来标识这个加载视图或者

NO_ID

将保持

publicvoidsetOnInflateListener(ateListener

inflateListener)

设置成功加载布局资源文件后事件通知的监听器。

参数

inflateListener

知。

参见

ateListener

publicvoidsetVisibility(intvisibility)

当可见性设置为

VISIBLE

INVISIBLE

inflate()

将被调用,并且加载视图资源在父容

器中替换

ViewStub

参数

visibility

设置为

VISIBLE

(显示)

,INVISIBLE

(隐藏)

,

GONE

(完全隐藏,不暂用布局位置).

参见

OnInflateListener

在成功加载后得到事件通

inflate()

7

、受保护方法

protectedvoiddispatchDraw(Canvascanvas)

调用这个函数去绘制这个控件的子视图。可以通过派生类重写在绘制子类之前获取控制(但

是是在他自己的视图已经被绘制完之后)

参数

canvas这个画布传到那个已渲染的视图对象。

protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec)

测量这个视图以确定其内容的高度和宽度。通过measure(int,int)来调用这个方法,

并且应该由子类重写以提高内容测量的效率和精确度。

约定:当该方法被重写时,你必须调用

setMeasuredDimension(int,int)

来存储已

测量视图的高度和宽度。否则将通过measure(int,int)抛出一个IllegalStateException异常。

调用父类的

onMeasure(int,int)

方法是一个有效的办法。

父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背

景。为了更好测量内容子类应该重写onMeasure(int,int)。

如果这个方法被重写,子类有责任确保测量它的高度和宽度至少是视图的最小宽度和高

度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。

参数

widthMeasureSpec

eSpec

由于父类有横向空间要求,参见

heightMeasureSpec

eSpec。

十五、

GridView

1

、结构

由于父类有纵向空间要求,参见

publicfinalclassGridViewextendsAbsListView

↳oup

rView

r>

tView

ew

2、类概述

一个在平面上可显示多个条目的可滚动的视图组件,该组件中的条目通过一个

ListAdapter和该组件进行关联。比如android手机中显示的应用:

比如实现九宫格图,用GridView是首选,也是最简单的。

3、构造函数

publicGridView(Contextcontext)

创建一个默认属性的GridView实例

publicGridView(Contextcontext,AttributeSetattrs)

创建一个带有

attrs

属性的

GridView

实例

publicGridView(Contextcontext,AttributeSetattrs,intdefStyle)

创建一个带有

attrs

属性,并且指定其默认样式的

GridView

实例

4、XML属性

属性名称

android:columnWidth

描述

设置列的宽度。关联的方法为:setColumnWidth(int)

设置此组件中的内容在组件中的位置。可选的值有:top、

bottom、left、right、center_vertical、fill_vertical、

center_horizontal、fill_horizontal、center、fill、

clip_vertical可以多选,用“|”分开。关联方法:

setGravity(intgravity)

两列之间的间距。关联方法:setHorizontalSpacing(int)

列数。关联方法:setNumColumns(int)

缩放模式。关联方法:setStretchMode(int)

两行之间的间距。关联方法:setVerticalSpacing(int)

android:gravity

android:horizontalSpacing

android:numColumns

android:stretchMode

android:verticalSpacing

5

、公共方法

publicListAdaptergetAdapter()

获得与此组件相关的适配器

..

返回值

ListAdapter

适配器实例

publicintgetStretchMode()

获得GridView的缩放模式..

publicbooleanonKeyDown(intkeyCode,KeyEventevent)

默认由ultiple()实现,如果视图是可用的并且是可点击的,

那么传入KEYCODE_DPAD_CENTER或KEYCODE_ENTER值是执行的是按下视图操

作。

参数

keyCode一个表示按下操作的键值.

event表示按钮事件的对象.

返回值

如果你认为已经完成事件处理

,

不想让让下一个处理器来处理此事件,则返回

true,

否则返回

false

publicbooleanonKeyMultiple(intkeyCode,intrepeatCount,KeyEventevent)

默认由ultiple()实现,总是返回false(不处理此事

件)。

参数

keyCode键值.

repeatCount

该动作发生的次数

.

event

事件对象

.

返回值

如果你认为已经完成事件处理

,

不想让让下一个处理器来处理此事件,则返回

true,

否则返回false。

publicbooleanonKeyUp(intkeyCode,KeyEventevent)

默认由ultiple()实现,如果视图是可用的并且是可点击

的,那么传入KEYCODE_DPAD_CENTER或KEYCODE_ENTER值是执行的是点击视图

操作。

参数

keyCode键值.

event事件对象.

返回值

如果你认为已经完成事件处理,不想让让下一个处理器来处理此事件,则返回true,

否则返回false。

publicvoidsetAdapter(ListAdapteradapter)

设置GridView的数据。

参数

adapter

grid

提供数据的适配器

publicvoidsetColumnWidth(intcolumnWidth)

设置

GridView

的列宽

.

参数

columnWidth列的宽度,以像素为单位

publicvoidsetGravity(intgravity)

设置控件内容的位置,默认值为:.

参数

gravity

位置值

publicvoidsetHorizontalSpacing(inthorizontalSpacing)

设置列间距.

参数

horizontalSpacing

列间距值

publicvoidsetNumColumns(intnumColumns)

设置

grid

的列数

参数

numColumns列数值.

publicvoidsetSelection(intposition)

设置选中的条目.

参数

position.

数据条目在列表中的索引值(从

0

开始),如果在可触摸的模式下,

在该索引值下的条目将不会被选中,但是该索引值仍然指向该条目。

publicvoidsetStretchMode(intstretchMode)

设置

grid

中的条目以什么缩放模式去填充空间。

.

参数

stretchMode可选值:NO_STRETCH,STRETCH_SPACING,

STRETCH_SPACING_UNIFORM,或STRETCH_COLUMN_WIDTH

publicvoidsetVerticalSpacing(intverticalSpacing)

设置行间距.

参数

verticalSpacing间距值,以像素为单位

6、代码示例

下面给出一个小例子

先看效果:

a).

publicclassGridView01extendsActivity{

privateGridViewgridview;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

te(savedInstanceState);

setContentView(ew);

//准备要添加的数据条目

List>items=newArrayList

ject>>();

for(inti=0;i<10;i++){

Mapitem=newHashMap();

("imageItem",);

("textItem","text"+i);

(item);

}

//实例化一个适配器

SimpleAdapteradapter=newSimpleAdapter(this,items,

_item,newString[]{"imageItem","textItem"},newint[]{.i

mage_item,_item});

//获得GridView实例

gridview=(GridView)findViewById(view);

//Columns(3);//可以在xml中设置

//vity();//同上

//将GridView和数据适配器关联

pter(adapter);

}

}

b).

id"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:numColumns="3"

android:gravity="center_horizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

c).grid_

android:layout_width="fill_parent"android:layout_height="fill_pa

rent"

xmlns:android="/apk/res/android">

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_below="@+id/image_item"

android:layout_height="wrap_content"

android:layout_width="wrap_content">


本文标签: 设置 应用 允许 文本 显示