Android—API中文文档

来源:互联网 发布:射手影音 知乎 编辑:程序博客网 时间:2024/04/29 09:12
 

Android2.2——API中文文档

LLGYZB@163.com

目录:

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、结构

java.lang.Object

   
android.view.View





android.widget.TextView

2、已知直接子类:

Button, CheckedTextView, Chronometer, DigitalClock, EditText

3、已知间接子类:

AutoCompleteTextView, CheckBox, CompoundButton, ExtractEditText,

MultiAutoCompleteTextView, RadioButton, ToggleButton

4XML属性

属性名称

描述

android:autoLink

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

android:autoText

如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:bufferType

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

也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1这里2

android:capitalize

设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

android:cursorVisible

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

android:digits

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

android:drawableBottom

text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

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

android:drawablePadding

设置textdrawable(图片)的间隔,与drawableLeftdrawableRightdrawableTopdrawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

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

android:drawableTop

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

android:editable

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

android:editorExtras

设置文本的额外的输入数据。在EditView再讨论。

android:ellipsize

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——跑马灯的方式显示(动画横向移动)

android:freezesText

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

android:gravity

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

android:hint

Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。比较奇怪的是TextView本来就相当于Label,怎么会不设置Text?!

android:imeOptions

附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。

android:imeActionId

设置IME动作ID。在EditView再做说明,可以先看这篇帖子:这里

android:imeActionLabel

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

android:includeFontPadding

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

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

android:inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。

android:linksClickable

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

android:marqueeRepeatLimit

ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

android:ems

设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度,如图:

android:maxEms

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

android:minEms

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

android:maxLength

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

android:lines

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

android:maxLines

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

android:minLines

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

android:lineSpacingExtra

设置行间距。

android:lineSpacingMultiplier

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

android:numeric

如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

android:password

以小点”.”显示文本

android:phoneNumber

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

android:privateImeOptions

设置输入法选项,此处无用,在EditText将进一步讨论。

android:scrollHorizontally

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

android:selectAllOnFocus

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

android:shadowColor

指定文本阴影的颜色,需要与shadowRadius一起使用。效果:

android:shadowDx

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

android:shadowDy

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

android:shadowRadius

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

android:singleLine

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text

设置显示文本.

android:textAppearance

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

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor

设置文本颜色

android:textColorHighlight

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

android:textColorHint

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

android:textColorLink

文字链接的颜色.

android:textScaleX

设置文字之间间隔,默认为1.0f。分别设置0.5f/1.0f/1.5f/2.0f效果如下:

android:textSize

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

android:textStyle

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

android:typeface

设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height

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

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:width

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

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度

二、EditText

1、结构

    java.lang.Object
      ↳ android.view.View
        android.widget.TextView        
          android.widget.EditText

    已知直接子类:
      AutoCompleteTextView, ExtractEditText

    已知间接子类:
      MultiAutoCompleteTextView

2xml属性

属性名称

描述

android:autoLink

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)。这里只有在同时设置text时才自动识别链接,后来输入的无法自动识别。

android:autoText

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

android:bufferType

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

也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1这里2

android:capitalize

设置英文字母大写类型。设置如下值:sentences仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写。在模拟器上用PC键盘直接输入可以出效果,但是用软键盘无效果。

android:cursorVisible

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

android:digits

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

android:drawableTop

text的正上方输出一个drawable。在EditView中的效果比较搞笑:
,居然在文本框里,而且删不了。

android:drawableBottom

text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

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

android:drawablePadding

设置textdrawable(图片)的间隔,与drawableLeftdrawableRightdrawableTopdrawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

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

android:editable

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

android:editorExtras

指定特定输入法的扩展,如“com.mydomain.im.SOME_FIELD”。源码跟踪至EditorInfo.extras,暂无相关实现代码。

android:ellipsize

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——跑马灯的方式显示(动画横向移动)

android:freezesText

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

android:gravity

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

android:hint

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

android:imeOptions

设置软键盘的Enter键。有如下值可设置:normalactionUnspecifiedactionNoneactionGo

actionSearchactionSendactionNextactionDone

flagNoExtractUiflagNoAccessoryActionflagNoEnterAction。可用’|’设置多个。这里仅设置显示图标之用,参见文章末尾例子。

android:imeActionId

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

android:imeActionLabel

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

android:includeFontPadding

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

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。关于自定义输入法参见这里

android:inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。有如下值设置:nonetexttextCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrecttextAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage短信息(会多一个表情按钮出来,点开如下图:

textLongMessage长讯息?textPersonName人名、textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间。部分参考这里

android:marqueeRepeatLimit

在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

android:ems

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

android:maxEms

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

android:minEms

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

android:maxLength

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

android:lines

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

android:maxLines

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

android:minLines

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

android:linksClickable

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

android:lineSpacingExtra

设置行间距。

android:lineSpacingMultiplier

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

android:numeric

如果被设置,该TextView有一个数字输入法。有如下值设置:integer正整数、signed带符号整数、decimal带小数点浮点数。

android:password

以小点”.”显示文本

android:phoneNumber

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

android:privateImeOptions

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

InputMethodService这篇文章也许有帮助。

android:scrollHorizontally

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

android:selectAllOnFocus

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

android:shadowColor

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

android:shadowDx

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

android:shadowDy

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

android:shadowRadius

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

android:singleLine

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text

设置显示文本.

android:textAppearance

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

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor

设置文本颜色

android:textColorHighlight

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

android:textColorHint

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

android:textColorLink

文字链接的颜色.

android:textScaleX

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

android:textSize

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

android:textStyle

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

android:typeface

设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height

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

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:width

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

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度


    补充说明:

      a).  由于是继承自TextView,所以属性是一样的,但是这里重点补充了输入法相关的属性说明和研究,部分注释也做了相应的调整。

      b).  Word格式下载

        http://download.csdn.net/source/2664164

3、例子

    3.1   <!--[endif]-->android:imeOptions例子

<EditText android:id="@+id/txtTest" android:imeOptions="actionGo"
     android:layout_width="100dp" android:layout_height="wrap_content"></EditText>

((EditText)findViewById(R.id.txtTest)).setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public
boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_GO) {
                    Toast.makeText(TestActivity.this, "你点了Go!", Toast.LENGTH_SHORT).show();
                }
                return
false;
            }
        });

三、AccessibilityService

1结构

  java.lang.Object

      ↳       android.content.Context


  ↳        android.content.ContextWrapper


  ↳        android.app.Service


↳     android.accessibilityservice.AccessibilityService

  public abstract class AccessibilityService extends Service

2类概述

  AccessibilityEvent事件被启动后AccessibilityService会接收回调函数运行于后台,这些事件指的是在用户接口间的状态转换,比如,焦点变化,按钮被点击等。一些辅助服务继承于此类并且实现它的抽象方法,像这样的一个服务和其他服务一样在AndroidManifest.xml中被声明但它必须被指定操纵

android.accessibilityservice.AccessibilityService的意图,下面的是一段例子:

<service android:name=".MyAccessibilityService">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService"
/>
</intent-filter>
</service>

辅助服务的声明周期只能被系统管理,启动或者停止这个服务必须由明确的用户通过启用或停用设备的设定,在系统通过呼叫onServiceConnected()方法与服务绑定后,这个方法才能被想要执行装载的客户端所重载使用,一个辅助服务通过呼叫setServiceInfo(AccessibilityServiceInfo)方法来设定AccessibilityServiceInfo而配置。你可以在任何时候改变这个服务的配置但最好是在重载方法onServiceConnected().中来使用。
一个辅助服务可以在特定的包中注册事件以提供特殊的反馈类型并且当最后一个关联的事件被解除的时候发出明确的超时提醒。

3通告策略

 对于每个回馈类型只有一个辅助服务被通知,服务登记处按顺序被通知,因此,如果有两个服务为同一个包中的同一回馈类型注册那么第一个会被通知,然而有可能的是,可以为一个给定的回馈类型去把一个服务注册为默认的,这样的话如果没有其他的服务来取代这个事件这个服务就会被呼出使用,换句话说,默认的服务不会与其他的服务竞争并且不管注册的顺序而被通知。

4公共方法:

4.1   abstract void onAccessibilityEvent(AccessibilityEvent event)

         Callback for AccessibilityEvents.


参数   event一个事件

4.2   public final IBinder onBind (Intent intent)


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

参数 intent与服务相绑定的意图,注意其他任何包含在Intent的外部意图将不能在此使用。

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

4.3   public abstract void onInterrupt ()


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

5保护方法:

5.1   protected void onServiceConnected ()

  
这个方法是AccessibilityService声明周期的一部分,在系统成功与服务绑定后才被呼叫,如果用来设定AccessibilityServiceInfo.这个方法更为方便。

四、Mainfest

1、结构

    java.lang.Object
  
  ↳    android.Manifest  

     public final class Manifest extends Object

 内部类

      Manifest.permission

      Manifest.permission_group

2Manifest.permission的常量 <!--[endif]-->

ACCESS_CHECKIN_PROPERTIES

允许在登入数据库的时候读写其中的属性表,并上传改变的值

ACCESS_COARSE_LOCATION

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

ACCESS_FINE_LOCATION

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

ACCESS_LOCATION_EXTRA_COMMANDS

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

ACCESS_MOCK_LOCATION

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

ACCESS_NETWORK_STATE

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

ACCESS_SURFACE_FLINGER

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

ACCESS_WIFI_STATE

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

ACCOUNT_MANAGER

允许应用进入帐户认证

AUTHENTICATE_ACCOUNTS

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

BATTERY_STATS

允许应用去统计电源信息

BIND_APPWIDGET

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

BIND_DEVICE_ADMIN

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

BIND_INPUT_METHOD

必须通过InputMethodService的请求来确保只有系统能够与之绑定

BIND_WALLPAPER

必须通过WallpaperService的请求来确保只有系统能够与之绑定

BLUETOOTH

允许应用去连接蓝牙设备

BLUETOOTH_ADMIN

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

BRICK

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

BROADCAST_PACKAGE_REMOVED

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

BROADCAST_SMS

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

BROADCAST_STICKY

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

BROADCAST_WAP_PUSH

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

CALL_PHONE

允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的拨打程序

CALL_PRIVILEGED

允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的任意号码的拨打,包括紧急号码.

CAMERA

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

CHANGE_COMPONENT_ENABLED_STATE

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

CHANGE_CONFIGURATION

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

CHANGE_NETWORK_STATE

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

CHANGE_WIFI_MULTICAST_STATE

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

CHANGE_WIFI_STATE

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

CLEAR_APP_CACHE

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

CLEAR_APP_USER_DATA

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

CONTROL_LOCATION_UPDATES

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

DELETE_CACHE_FILES

允许应用删除掉缓存文件

DELETE_PACKAGES

允许应用删除掉程序包

DEVICE_POWER

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

DIAGNOSTIC

允许应用诊断程序资源

DISABLE_KEYGUARD

允许应用禁用键盘锁

DUMP

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

EXPAND_STATUS_BAR

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

FACTORY_TEST

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

FLASHLIGHT

允许访问手电筒

FORCE_BACK

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

GET_ACCOUNTS

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

GET_PACKAGE_SIZE

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

GET_TASKS

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

GLOBAL_SEARCH

这个权限可以被内容提供者用来允许使用全程搜索他们的数据

HARDWARE_TEST

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

INJECT_EVENTS

允许应用注入用户事件(键盘、触摸)到事件中然后提供给任意的窗口

INSTALL_LOCATION_PROVIDER

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

INSTALL_PACKAGES

允许应用安装程序包.

INTERNAL_SYSTEM_WINDOW

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

INTERNET

允许应用打开网络套接口

KILL_BACKGROUND_PROCESSES

允许应用去呼叫killBackgroundProcesses(String).方法

MANAGE_ACCOUNTS

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

MANAGE_APP_TOKENS

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

MASTER_CLEAR

 

MODIFY_AUDIO_SETTINGS

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

MODIFY_PHONE_STATE

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

MOUNT_FORMAT_FILESYSTEMS

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

MOUNT_UNMOUNT_FILESYSTEMS

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

PERSISTENT_ACTIVITY

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

PROCESS_OUTGOING_CALLS

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

READ_CALENDAR

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

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

允许应用接收在系统完成启动后发出的ACTION_BOOT_COMPLETED广播信息

RECEIVE_MMS

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

RECEIVE_SMS

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

RECEIVE_WAP_PUSH

允许应用监听WAP push信息

RECORD_AUDIO

允许应用记录音频信息

REORDER_TASKS

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

RESTART_PACKAGES

已废弃使用

SEND_SMS

允许应用发送短消息.

SET_ACTIVITY_WATCHER

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

SET_ALWAYS_FINISH

允许应用去控制当activities被覆盖后是否是立即接触结束

SET_ANIMATION_SCALE

改变动画的比例因子

SET_DEBUG_APP

设置一个应用为调试模式

SET_ORIENTATION

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

SET_PREFERRED_APPLICATIONS

已废弃

SET_PROCESS_LIMIT

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

SET_TIME

允许应用设置系统时间

SET_TIME_ZONE

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

SET_WALLPAPER

允许应用设置壁纸

SET_WALLPAPER_HINTS

允许应用设置锁定的壁纸

SIGNAL_PERSISTENT_PROCESSES

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

STATUS_BAR

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

SUBSCRIBED_FEEDS_READ

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

SUBSCRIBED_FEEDS_WRITE

 

SYSTEM_ALERT_WINDOW

允许应用使用TYPE_SYSTEM_ALERT来打开窗口,并将窗口显示于其他应用的顶端

UPDATE_DEVICE_STATS

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

USE_CREDENTIALS

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

VIBRATE

允许应用访问震动器

WAKE_LOCK

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

WRITE_APN_SETTINGS

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

WRITE_CALENDAR

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

WRITE_CONTACTS

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

WRITE_EXTERNAL_STORAGE

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

WRITE_GSERVICES

允许应用修改Google服务地图

WRITE_HISTORY_BOOKMARKS

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

WRITE_OWNER_DATA

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

WRITE_SECURE_SETTINGS

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

WRITE_SETTINGS

允许应用写或读系统设置

WRITE_SMS

允许应用写短消息信息

WRITE_SYNC_SETTINGS

允许应用写同步设置

3Manifest.permission_group的常量

<!--[endif]-->

ACCOUNTS

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

COST_MONEY

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

DEVELOPMENT_TOOLS

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

HARDWARE_CONTROLS

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

LOCATION

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

MESSAGES

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

NETWORK

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

PERSONAL_INFO

用于提供访问用户私人数据如联系人、日历、电子邮件等的权限

PHONE_CALLS

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

STORAGE

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

SYSTEM_TOOLS

与系统API有关联的权限组

五、View

1、结构

    java.lang.Object
      ↳     android.view.View

    已知直接子类:

      
AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView,TextView, ViewGroup, ViewStub

    已知间接子类:

      AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout, AdapterView<T extends 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

2xml属性

属性名称

描述

android:background

设置背景色/背景图片。可以通过以下两种方法设置背景为透明:"@android:color/transparent""@null"。注意TextView默认是透明的,不用写此属性,但是Buttom/ImageButton/ImageView想透明的话就得写这个属性了。

android:clickable

是否响应点击事件。

android:contentDescription

设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明,如ImageButton。这里在界面上不会有效果,自己在程序中控制,可临时放一点字符串数据。

android:drawingCacheQuality

设置绘图时半透明质量。有以下值可设置:auto(默认,由框架决定)/high(高质量,使用较高的颜色深度,消耗更多的内存/low(低质量,使用较低的颜色深度,但是用更少的内存)。

android:duplicateParentState

如果设置此属性,将直接从父容器中获取绘图状态(光标,按下等)。
见下面代码部分,注意根据目前测试情况仅仅是获取绘图状态,而没有获取事件,也就是你点一下LinearLayoutButton有被点击的效果,但是不执行点击事件。

android:fadingEdge

设置拉滚动条时
,边框渐变的放向。none(边框颜色不变),horizontal(水平方向颜色变淡),vertical(垂直方向颜色变淡)。参照fadingEdgeLength的效果图

android:fadingEdgeLength

设置边框渐变的长度。

android:fitsSystemWindows

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

android:focusable

设置是否获得焦点。若有requestFocus()被调用时,后者优先处理。注意在表单中想设置某一个如EditText获取焦点,光设置这个是不行的,需要将这个EditText前面的focusable都设置为false才行。在Touch模式下获取焦点需要设置focusableInTouchMode为true。

android:focusableInTouchMode

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

android:hapticFeedbackEnabled

设置长按时是否接受其他触摸反馈事件。这里模拟器没有试出效果,难道是多点触摸?找不到资料可以找找performHapticFeedbackHapticFeedback这个关键字的资料看看。

android:id

给当前View设置一个在当前layout.xml中的唯一编号,可以通过调用View.findViewById()Activity.findViewById()根据这个编号查找到对应的View。不同的layout.xml之间定义相同的id不会冲突。格式如”@+id/btnName”

android:isScrollContainer

设置当前View为滚动容器。这里没有测试出效果来,ListView/ GridView/ ScrollView根本就不用设置这个属性,而EdidText设置android:scrollbars也能出滚动条。

android:keepScreenOn

View在可见的情况下是否保持唤醒状态。常在LinearLayout使用该属性,但是模拟器这里没有效果。

        

android:longClickable

设置是否响应长按事件.

android:minHeight

设置视图最小高度

android:minWidth

设置视图最小宽度度

android:nextFocusDown

设置下方指定视图获得下一个焦点。焦点移动是基于一个在给定方向查找最近邻居的算法。如果指定视图不存在,移动焦点时将报运行时错误。可以设置imeOptions= actionDone,这样输入完即跳到下一个焦点。

android:nextFocusLeft

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

android:nextFocusRight

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

android:nextFocusUp

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

android:onClick

点击时从上下文中调用指定的方法。这里指定一个方法名称,一般在Activity定义符合如下参数和返回值的函数并将方法名字符串指定为该值即可:

public void onClickButton(View view)

android:onClick=” onClickButton”

android:padding

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

android:paddingBottom

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

               

android:paddingLeft

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

              

android:paddingRight

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

              

android:paddingTop

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

               

android:saveEnabled

设置是否在窗口冻结时(如旋转屏幕)保存View的数据,默认为true,但是前提是你需要设置id才能自动保存,参见这里

android:scrollX

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

android:scrollY

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

android:scrollbarAlwaysDraw

HorizontalTrack

设置是否始终显示垂直滚动条。这里用ScrollViewListView测试均没有效果。

android:scrollbarAlwaysDraw

VerticalTrack

设置是否始终显示垂直滚动条。这里用ScrollViewListView测试均没有效果。

android:scrollbarDefault

DelayBeforeFade

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

android:scrollbarFadeDuration

设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒为单位。Android2.2中滚动条滚动完之后会消失,再滚动又会出来,在1.51.6版本里面会一直显示着。

android:scrollbarSize

设置滚动条的宽度。

android:scrollbarStyle

设置滚动条的风格和位置。设置值:insideOverlayinsideInsetoutsideOverlayoutsideInset。这里没有试出太多效果,以下依次是outsideOverlayoutsideInset效果截图比较:

  

android:scrollbarThumbHorizontal

设置水平滚动条的drawable

                  

android:scrollbarThumbVertical

设置垂直滚动条的drawable.

                  

android:scrollbarTrackHorizontal

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

                  

android:scrollbarTrackVertical

设置垂直滚动条背景(轨迹)的drawable注意直接设置颜色值如”android:color/white”将得出很难看的效果,
甚至都不理解这个属性了,这里可以
参见ApiDemos里res/drawable/ scrollbar_vertical_thumb.xmlscrollbar_vertical_track.xml,设置代码为:android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
                  

android:scrollbars

设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直)。见下列代码演示使用该属性让EditText内有滚动条。但是其他容器如LinearLayout设置了但是没有效果。

                    

android:soundEffectsEnabled

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

android:tag

设置一个文本标签。可以通过View.getTag() for with

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

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

许编译时类型检查。

android:visibility

设置是否显示View。设置值:visible(默认值,显示),invisible(不显示,但是仍然占用空间),gone

(不显示,不占用空间)

3、公共方法(部分)

    boolean        awakenScrollBars()
    boolean     awakenScrollBars(int startDelay, boolean invalidate)
    boolean     awakenScrollBars(int startDelay)
    int     computeHorizontalScrollExtent()
    int     computeHorizontalScrollOffset()
    int     computeHorizontalScrollRange()
    int     computeVerticalScrollExtent()
    int     computeVerticalScrollOffset()
    int     computeVerticalScrollRange()
    void     dispatchDraw(Canvas canvas)
    void     dispatchRestoreInstanceState(SparseArray<Parcelable> container)
    void     dispatchSaveInstanceState(SparseArray<Parcelable> container)
    void     dispatchSetPressed(boolean pressed)
    void     dispatchSetSelected(boolean selected)
    void     dispatchVisibilityChanged(View changedView, int visibility)
    void     drawableStateChanged()
    boolean     fitSystemWindows(Rect insets)
    float     getBottomFadingEdgeStrength()
    int     getBottomPaddingOffset()
    ContextMenu.ContextMenuInfo     getContextMenuInfo()
    int     getHorizontalScrollbarHeight()
    float     getLeftFadingEdgeStrength()
    int     getLeftPaddingOffset()
    float     getRightFadingEdgeStrength()
    int     getRightPaddingOffset()
    int     getSuggestedMinimumHeight()
    int     getSuggestedMinimumWidth()
    float     getTopFadingEdgeStrength()
    int     getTopPaddingOffset()
    int     getWindowAttachCount()
    void     initializeFadingEdge(TypedArray a)
    void     initializeScrollbars(TypedArray a)
    boolean     isPaddingOffsetRequired()
    static int[]     mergeDrawableStates(int[] baseState, int[] additionalState)
    void     onAnimationEnd()
    void     onAnimationStart()
    void     onAttachedToWindow()
    void     onConfigurationChanged(Configuration newConfig)
    void     onCreateContextMenu(ContextMenu menu)
    int[]     onCreateDrawableState(int extraSpace)
    void     onDetachedFromWindow()
    void     onDisplayHint(int hint)
    void     onDraw(Canvas canvas)
    final void     onDrawScrollBars(Canvas canvas)
    void     onFinishInflate()
    void     onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)    void     onLayout(boolean changed, int left, int top, int right, int bottom)
    void     onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    void     onRestoreInstanceState(Parcelable state)
    Parcelable     onSaveInstanceState()
    void     onScrollChanged(int l, int t, int oldl, int oldt)
    boolean     onSetAlpha(int alpha)
    void     onSizeChanged(int w, int h, int oldw, int oldh)
    void     onVisibilityChanged(View changedView, int visibility)
    void     onWindowVisibilityChanged(int visibility)
    final void     setMeasuredDimension(int measuredWidth, int measuredHeight)
    boolean     verifyDrawable(Drawable who)

4、代码

4.1  android:duplicateParentState

<LinearLayout android:clickable="true" android:background="#ff0fff" android:layout_width="100dp" android:layout_height="100dp">
<Button android:duplicateParentState="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>

    4.2  android:scrollbars

<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:minHeight="50dp"
android:background="@android:drawable/editbox_background"
android:scrollbars="vertical"
        android:maxLines="4">
</EditText>

5、遗留问题

5.1  以下几个属性翻遍了资料试了很多次都没有效果,只能暂时搁置,以后补上,也欢迎的大家提供意见和线索,分享大家的经验:

      android:scrollbarAlwaysDrawHorizontalTrack   

      android:scrollbarAlwaysDrawVerticalTrack

      android:isScrollContainer

六、ImagesView

2、结构

    java.lang.Object

      ↳        android.view.View

        ↳        android.widget.ImageView

    已知直接子类:

    ImageButton, QuickContactBadge  

    已知间接子类:

    ZoomButton

2类概述

    显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。

3XML属性

属性名称

描述

android:adjustViewBounds

是否保持宽高比。需要与maxWidthMaxHeight一起使用,否则单独使用没有效果。

android:cropToPadding

是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分:

android:maxHeight

设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:

1
设置setAdjustViewBoundstrue

2
设置maxWidthMaxHeight

3
设置设置layout_widthlayout_heightwrap_content

android:maxWidth

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

android:scaleType

设置图片的填充方式。

matrix

0

用矩阵来绘图

fitXY

1

拉伸图片(不按比例)以填充View的宽高

layout_

height

:30px


layout_

width

:120px

fitStart

2

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边

fitCenter

3

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间

fitEnd

4

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边

center

5

按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示

layout_

height

:60px


layout_

width

:80px


padding

:10px

centerCrop

6

按比例放大原图直至等于某边View的宽高显示。

centerInside

7

当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。

android:src

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

android:tint

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

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

4、代码  

  4.1  android:tint

<ImageView android:background="@android:color/white" android:src="@drawable/btn_mode_switch_bg"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
<ImageView android:layout_marginLeft="5dp" android:background="@android:color/white" android:tint="#ffff00" android:src="@drawable/btn_mode_switch_bg"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

    4.2  android:cropToPadding

<ImageView android:background="@android: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"></ImageView>
<ImageView android:background="@android: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"></ImageView>
<ImageView android:paddingTop="10px"  android:background="@android: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"></ImageView>
<ImageView android:paddingTop="10px" android:background="@android:color/white" android:scrollY="10px" android:cropToPadding="false" android:src="@drawable/btn_mode_switch_bg"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

七、ImageButton

1、结构

    java.lang.Object
      ↳     android.view.View
        ↳     android.widget.ImageView
          ↳     android.widget.ImageButton

    已知直接子类:

      ZoomButton

2、类摘要

  显示一个可以被用户点击的图片按钮,默认情况下,ImageButton看起来像一个普通的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过<ImageButton> XML元素的android:src属性或setImageResource(int)方法指定。

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

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

  为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时显示的图片。一个简单的方法可以做到这点——通过XML"selector."配置,如下:

      

  保存上面的XMLres/drawable/文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。

<item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressedfocused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。)

  
  参见
Form Stuff tutorial

3
继承自父类的方法

    public void  setAlpha  (int alpha)

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

    参数

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

八、QuickContactBadge

1、结构

    java.lang.Object
       ↳     android.view.View
             ↳     android.widget.ImageView
                   ↳     android.widget.QuickContactBadge

2、截图

    

    说明:andorid自带的ApiDomos的例子中有这个的代码:App/Activity/QuickContacktsDemo。注意需要android.permission.READ_CONTACTS权限,并且联系人里面有数据,并且联系人需要有手机号码,不然出来是一个空的(看代码可知)。

3、公共方法

         public void assignContactFromEmail (String emailAddress, boolean lazyLookup)


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

    参数

      emailAddress         联系人的电子邮箱地址

      lazyLookup      如果设置为true,将不会立即查找这个邮箱地址,直到View被点击时。(注:是否延迟匹配电子邮件)

         public void assignContactFromPhone (String phoneNumber, boolean lazyLookup)


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

   
  参数


  phoneNumber  联系人的电话号码


   lazyLookup     如果设置为true,将不会立即查找这个电话号码,直到View被点击时。

         public void assignContactUri (Uri contactUri)


指定和QuickContactBadge关联的联系人URI。注意,这里只是显示QuickContact窗口,并不为你绑定联系人图片。


  参数


  contactUri       CONTENT_URICONTENT_LOOKUP_URI其中一种风格的URI.

         public void onClick (View v)


View被点击时调用。


  参数


  v      被点击的View.

         public void setExcludeMimes (String[] excludeMimes)


设置一组要排除不显示的MIMI类型列表。例如,可以隐藏Contacts.CONTENT_ITEM_TYPE类型的图标。(注:如果像如下设置:

  setExcludeMimes(new String[] { Contacts.CONTENT_ITEM_TYPE })

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

         public void setMode (int size)


设置QuickContact的窗口模式。如下选项:MODE_SMALLMODE_MEDIUMMODE_LARGE。(注:默认为QuickContact.MODE_MEDIUM,设置为MODE_LARGE时会同时显示联系人名称)

九、ZoomButton

1、类结构

    java.lang.Object

      ↳        android.view.View

        ↳        android.widget.ImageView


    ↳        android.widget.ImageButton

            ↳        android.widget.ZoomButton

    public class ZoomButton extends ImageButton implements View.OnLongClickListener

2、概述

    

    缩放按钮,实际上是很普通的两个按钮,可以简单的理解为一个ImageButton加上一张缩放的图标。如下代码:

  

3、公共方法

    public boolean dispatchUnhandledMove (View focused, int direction)

    对于获得焦点的View,这个方法是捕获箭头事件最后的机会。这就是在获取焦点的View没有在内部处理、系统在要求的方向也不能找到一个新的View让其获得焦点时调用。


参数

                            focused  当前焦点View

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


返回值


如果为true,将清除这个View未处理的事件。


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

  

         public boolean onKeyUp (int keyCode, KeyEvent event)


默认实现至KeyEvent.Callback.onKeyMultiple():当点击执行时KEYCODE_DPAD_CENTER KEYCODE_ENTER被释放。


参数

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

                            event       该KeyEvent对象,定义按钮动作


返回值


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

                           

         public boolean onLongClick (View v)


当一个View被长按时调用。


参数

                            v      被长按的View


返回值


如果返回true,这个回调在长按时被执行了,反之返回false.

         public boolean onTouchEvent (MotionEvent event)


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


参数

                            event       该移动事件.


返回值


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

         public void setEnabled (boolean enabled)


设置这个View启用状态。


参数

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

         public void setZoomSpeed (long speed)


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

十、CheckBox

1、类结构

    public class CheckBox extends CompoundButton

    java.lang.Object


    ↳        android.view.View


    ↳        android.widget.TextView


    ↳        android.widget.Button


    ↳        android.widget.CompoundButton


    ↳        android.widget.CheckBox

2
概述

    

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

    

十一、RadioButton

1、结构

    public class RadioButton extends CompoundButton

    java.lang.Object
       ↳     android.view.View
             ↳     android.widget.TextView
                   ↳     android.widget.Button
                         ↳     android.widget.CompoundButton
                               ↳     android.widget.RadioButton

2、概述

    

    单选按钮是一种双状态的按钮,可以选择或不选中。在单选按钮没有被选中时,用户能够按下或点击来选中它。但是,与复选框相反,用户一旦选中就不能够取消选中(译者注:可以通过代码来控制,界面上点击的效果是一旦选中之后就不能取消选中了)。

    多个单选按钮通常与RadioGroup同时使用。当一个单选组(RadioGroup)包含几个单选按钮时,选中其中一个的同时将取消其它选中的单选按钮。(译者注:示例参见这里

3、公共方法

         public void toggle ()


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


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

         

十二、Button

1、结构

    public class Button extends TextView

    java.lang.Object
       ↳     android.view.View
             ↳     android.widget.TextView
                   ↳     android.widget.Button

已知直接子类
      CompoundButton

  已知间接子类
      CheckBox,RadioButton, ToggleButton

2、概述

    

  代表一个按钮部件。用户通过按下按钮,或者点击按钮来执行一个动作。以下是一个按钮在activity中典型的应用:

    

  然后,你能在xml布局中通过buttonandroid:onClick属性指定一个方法,以替代在activity中为button设置OnClickListener。例如:

    

  现在,当用户点击按钮时,Android系统调用activityselfDestruct(View)方法。为了正确执行,这个方法必须是public并且仅接受一个View类型的参数。例如:

    

  

3、按钮样式

每个按钮的样式默认为系统按钮的背景,不同的设备、不同的平台版本有不同按钮风格。如你不满意默认的按钮样式,想对其定制以符合您应用程序的设计,那么你能用state list drawable替换按钮的背景图片。一个状态列表drawable是一个在XML中定义的drawable资源,根据当前按钮的状态改变其图片。一旦你在XML中定义了一个状态列表drawable,你可以将它应用于你的android:background属性。欲了解更多信息和示例,参见State List Drawable.

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

4XML属性

    参见ButtonTextViewViewXML属性。

十三、ToggleButton

1、结构

    public class ToggleButton extends CompoundButton

    java.lang.Object


    ↳        android.view.View


    ↳        android.widget.TextView


    ↳        android.widget.Button


    ↳        android.widget.CompoundButton


    ↳        android.widget.ToggleButton

2
类概述

    

    通过一个带有亮度指示同时默认文本为“ON”或“OFF”的按钮显示选中/未选中状态。

3XML属性

属性名称

描述

android:disabledAlpha

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

android:textOff

未选中时按钮的文本

android:textOn

选中时按钮的文本

4、公共方法

         public CharSequence getTextOff ()


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


返回值


文本

         public CharSequence getTextOn ()


返回按钮选中时的文本。


返回值


文本

         public void setBackgroundDrawable (Drawable d)


设置指定的可绘制(译者注:如图片)为背景,或删除背景。如果让背景有边距,这个视图的边距就是背景的边距。然而,当背景被删除时,这个视图的边距不能被触摸。如果需要设置边距,请使用方法setPadding(int, int, int, int)

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


参数

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

         public void setChecked (boolean checked)


改变按钮的选中状态。


参数

                            checked true让按钮选中,false让按钮不选中

         public void setTextOff (CharSequence textOff)


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


参数

                            textOff    文本

         public void setTextOn (CharSequence textOn)


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


参数

                            textOn   文本

5、受保护方法

         protected void drawableStateChanged ()


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


确保在覆盖时中调用父类方法(译者注:super. drawableStateChanged ())。

         protected void onFinishInflate ()

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


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

十四、ViewStub

1、结构

    public final class ViewStub extends View

    

    java.lang.Object


       android.view.View


       android.view.ViewStub

2、类概述

    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、嵌套类

    接口    ViewStub.OnInflateListener        一个用于接收ViewStub已经成功加载布局资源文件的通知的监听器。

4XML属性

属性名称

相关方法

描述

android:inflatedId

setInflatedId(int)

覆盖待加载视图的id值。

android:layout

setLayoutResource(int)

为待加载的资源视图提供一个标识,在ViewStub变为可见或获取焦点时使用它。(译者注:要引用的布局资源文件id

5、构造函数

    ViewStub(Context context, int layoutResource)

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


  参数

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

6、公共方法

         public void draw (Canvas canvas)


手动在指定的画布绘制这个视图(及所有其子视图)。这个视图必须在调用这个函数之前做好了整体布局。当要自己实现一个视图时,不要重载这个方法;相反,你应该重载onDraw(Canvas)方法。(译者注:主要用于自定义的视图组件的方法。


参数

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

         public int getInflatedId ()


返回加载的布局资源文件的ID,如果加载的布局资源文件的idNO_ID,那么这个加载的View将保留它原来的id值。


相关XML属性

                            android:inflatedId


返回值


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


参见

                            setInflatedId(int)

         public int getLayoutResource ()


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


相关XML属性

                            android:layout


返回值


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


参见

                            setLayoutResource(int)

                            setVisibility(int)

                            inflate()

         public View inflate ()


加载getLayoutResource()方法标识的布局资源,并通过加载布局资源替换父容器中它自己。


返回值


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

         public void setInflatedId (int inflatedId)


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


相关XML属性

                            android:inflatedId


参数

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


参见

                            getInflatedId()

         public void setLayoutResource (int layoutResource)


设置待加载的布局资源文件,当ViewStub被设置为visibleinvisible或调用inflate()时使用。这个在加载布局资源文件时创建的视图用来在父容器中替换它自己。


相关XML属性

                            android:layout


参数

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


参见

                            getLayoutResource()

                            setVisibility(int)

                            inflate()

         public void setOnInflateListener (ViewStub.OnInflateListener inflateListener)

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


  参数

                            inflateListener         OnInflateListener在成功加载后得到事件通知。


  参见

                            ViewStub.OnInflateListener

         public void setVisibility (int visibility)

当可见性设置为VISIBLEINVISIBLEinflate()将被调用,并且加载视图资源在父容器中替换ViewStub


参数

                            visibility 设置为VISIBLE(显示), INVISIBLE(隐藏), GONE(完全隐藏,不暂用布局位置).


参见

                              inflate()

7、受保护方法

         protected void dispatchDraw (Canvas canvas)

调用这个函数去绘制这个控件的子视图。可以通过派生类重写在绘制子类之前获取控制(但是是在他自己的视图已经被绘制完之后)


参数

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

         protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

测量这个视图以确定其内容的高度和宽度。通过measure(int, int)来调用这个方法,并且应该由子类重写以提高内容测量的效率和精确度。

    约定:当该方法被重写时,你必须调用setMeasuredDimension(int, int)来存储已测量视图的高度和宽度。否则将通过measure(int, int)抛出一个IllegalStateException异常。调用父类的onMeasure(int, int)方法是一个有效的办法。

    父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。为了更好测量内容子类应该重写onMeasure(int, int)

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

      参数

  widthMeasureSpec         由于父类有横向空间要求,参见View.MeasureSpec

                             heightMeasureSpec        由于父类有纵向空间要求,参见View.MeasureSpec

十五、GridView

1、结构

    public final classGridView extends AbsListView

    java.lang.Object
      ↳ android.view.View
        ↳ android.view.ViewGroup
          ↳ android.widget.AdapterView<T extends android.widget.Adapter>
            ↳ android.widget.AbsListView
              ↳ android.widget.GridView

2、类概述

    一个在平面上可显示多个条目的可滚动的视图组件,该组件中的条目通过一个ListAdapter和该组件进行关联。比如android手机中显示的应用:

    

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

3、构造函数

    public GridView (Context context)
    创建一个默认属性的GridView实例

    public GridView (Context context, AttributeSet attrs)

    创建一个带有attrs属性的GridView实例

    public GridView (Context context, AttributeSet attrs, int defStyle)

    创建一个带有attrs属性,并且指定其默认样式的GridView实例

4XML属性

属性名称

描述

android:columnWidth

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

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:topbottomleftrightcenter_verticalfill_verticalcenter_horizontalfill_horizontalcenterfillclip_vertical可以多选,用“|”分开。关联方法:setGravity (int gravity)

android:horizontalSpacing

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

android:numColumns

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

android:stretchMode

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

android:verticalSpacing

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

5、公共方法

         public ListAdapter getAdapter ()


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

返回值

    ListAdapter适配器实例

         public int getStretchMode ()


获得GridView的缩放模式..

         public boolean onKeyDown (int keyCode, KeyEvent event)


默认由KeyEvent.Callback.onKeyMultiple()实现,如果视图是可用的并且是可点击的,那么传入 KEYCODE_DPAD_CENTERKEYCODE_ENTER值是执行的是按下视图操作。


参数

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

event 表示按钮事件的对象.


返回值

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

         public boolean onKeyMultiple (int keyCode, int repeatCount, KeyEvent event)


默认由KeyEvent.Callback.onKeyMultiple()实现,总是返回false(不处理此事件)。


参数

                   keyCode 键值.

repeatCount 该动作发生的次数.

event 事件对象.


返回值

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

         public boolean onKeyUp (int keyCode, KeyEvent event)


默认由KeyEvent.Callback.onKeyMultiple()实现,如果视图是可用的并且是可点击的,那么传入KEYCODE_DPAD_CENTERKEYCODE_ENTER值是执行的是点击视图操作。

参数

              keyCode 键值.

event 事件对象.


返回值

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

         public void setAdapter (ListAdapter adapter)


设置GridView的数据。


参数

                            adapter grid提供数据的适配器

         public void setColumnWidth (int columnWidth)


设置GridView的列宽.


参数

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

         public void setGravity (int gravity)


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


参数

                           gravity 位置值

         public void setHorizontalSpacing (int horizontalSpacing)


设置列间距.


参数

                            horizontalSpacing 列间距值

public void setNumColumns (int numColumns)


设置grid的列数

参数

numColumns 列数值.

public void setSelection (int position)


设置选中的条目.

参数

position . 数据条目在列表中的索引值(从0开始),如果在可触摸的模式下,在该索引值下的条目将不会被选中,但是该索引值仍然指向该条目。

public void setStretchMode (int stretchMode)

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

参数

stretchMode 可选值:NO_STRETCHSTRETCH_SPACINGSTRETCH_SPACING_UNIFORM,或STRETCH_COLUMN_WIDTH

public void setVerticalSpacing (int verticalSpacing)

设置行间距.


  参数

      verticalSpacing间距值,以像素为单位  

6、代码示例

    下面给出一个小例子先看效果:

    

    a).  GridView01.java

public
class GridView01 extends Activity {
    private GridView gridview;
    @Override
    protected
void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub

super.onCreate(savedInstanceState);
        setContentView(R.layout.gridview);
        
//准备要添加的数据条目
        List<Map<String, Object>> items = new ArrayList<Map<String,Object>>();
        for (int i = 0; i < 10; i++) {
            Map<String, Object> item = new HashMap<String, Object>();
            item.put("imageItem", R.drawable.icon);
            item.put("textItem", "text" + i);
            items.add(item);
        }
//实例化一个适配器
        SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.grid_item, new String[]{"imageItem", "textItem"}, new
int[]{R.id.image_item, R.id.text_item});
        //获得GridView实例
        gridview = (GridView)findViewById(R.id.mygridview);
        //gridview.setNumColumns(3);//可以在xml中设置
        //gridview.setGravity(Gravity.CENTER);//同上
//GridView和数据适配器关联
        gridview.setAdapter(adapter);
    }
}

    b).  gridview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<GridView android:id="@+id/mygridview"
        android:numColumns="3"
        android:gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</GridView>
</LinearLayout>

    c).  grid_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:id="@+id/image_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</ImageView>
<TextView android:id="@+id/text_item"
        android:layout_below="@+id/image_item"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">
</TextView>
</RelativeLayout>

参考资料:

农民伯伯:http://over140.cnblogs.com/