Android—API中文文档
2012-03-15 00:42
204 查看
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 4、XML属性
1、结构 java.lang.Object ↳ android.view.View ↳ android.widget.TextView ↳ android.widget.EditText 已知直接子类: AutoCompleteTextView, ExtractEditText 已知间接子类: MultiAutoCompleteTextView 2、xml属性
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 2、Manifest.permission的常量 <!--[endif]-->
<!--[endif]-->
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 2、xml属性
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类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。 3、XML属性
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."配置,如下: 保存上面的XML到res/drawable/文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton的 android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。 <item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。) 参见Form Stuff tutorial。 3、 继承自父类的方法 public void setAlpha (int alpha) 设置ImageButton图片的透明度(注意不是背景图片的)。效果如图: 参数 alpha 透明值0~255,0为完全透明,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_URI或CONTENT_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_SMALL、MODE_MEDIUM、MODE_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布局中通过button的android:onClick属性指定一个方法,以替代在activity中为button设置OnClickListener。例如: 现在,当用户点击按钮时,Android系统调用activity的selfDestruct(View)方法。为了正确执行,这个方法必须是public并且仅接受一个View类型的参数。例如: 3、按钮样式 每个按钮的样式默认为系统按钮的背景,不同的设备、不同的平台版本有不同按钮风格。如你不满意默认的按钮样式,想对其定制以符合您应用程序的设计,那么你能用state list drawable替换按钮的背景图片。一个状态列表drawable是一个在XML中定义的drawable资源,根据当前按钮的状态改变其图片。一旦你在XML中定义了一个状态列表drawable,你可以将它应用于你的android:background属性。欲了解更多信息和示例,参见State List Drawable. 实现一个按钮的例子可参见Form Stuff tutorial 4、XML属性 参见Button、TextView、View的XML属性。 十三、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”的按钮显示选中/未选中状态。 3、XML属性
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已经成功加载布局资源文件的通知的监听器。 4、XML属性
ViewStub(Context context, int layoutResource) 创建一个与指定的布局资源文件关联的ViewStub对象。 参数 layoutResource 要加载的布局资源文件的id值。 6、公共方法 public void draw (Canvas canvas) 手动在指定的画布绘制这个视图(及所有其子视图)。这个视图必须在调用这个函数之前做好了整体布局。当要自己实现一个视图时,不要重载这个方法;相反,你应该重载onDraw(Canvas)方法。(译者注:主要用于自定义的视图组件的方法。) 参数 canvas 这个画布传到那个已渲染的视图对象。 public int getInflatedId () 返回加载的布局资源文件的ID,如果加载的布局资源文件的id是NO_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。如果这个id为NO_ID,这个加载视图保持它原来的id不变。 相关XML 属性 android:inflatedId 参数 inflatedId 一个正整数来标识这个加载视图或者NO_ID将保持加载视图原来的id。 参见 getInflatedId() public void setLayoutResource (int layoutResource) 设置待加载的布局资源文件,当ViewStub被设置为visible或invisible或调用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) 当可见性设置为VISIBLE或INVISIBLE,inflate()将被调用,并且加载视图资源在父容器中替换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 class GridView 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实例 4、XML属性
public ListAdapter getAdapter () 获得与此组件相关的适配器.. 返回值 ListAdapter适配器实例 public int getStretchMode () 获得GridView的缩放模式.. public boolean onKeyDown (int keyCode, KeyEvent event) 默认由KeyEvent.Callback.onKeyMultiple()实现,如果视图是可用的并且是可点击的,那么传入 KEYCODE_DPAD_CENTER或KEYCODE_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_CENTER或KEYCODE_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_STRETCH,STRETCH_SPACING,STRETCH_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/ |
相关文章推荐
- Android2.2 API 中文文档系列(3) —— AccessibilityService
- Android 2.2 r1 API 中文文档系列(12) —— Button
- <转>Android2.2 API 中文文档系列(3) —— AccessibilityService
- Android 3.1 r1 中文API文档 (120) —— SearchView
- Android多媒体--MediaCodec 中文API文档
- Android2.2 API 中文文档系列(1) —— TextView
- Android 3.1 r1 API中文文档(6)——ImageView
- Android2.2 API 中文文档系列(7) —— ImageButton
- Android2.2 API 中文文档系列(2) —— EditText
- <转>Android2.2 API 中文文档系列(4) —— Manifest
- Android 3.1 r1 中文API文档 (120) —— SearchView
- Android2.2 API 中文文档系列(3) —— AccessibilityService
- Android2.2 API 中文文档系列(4) —— Manifest(1)
- Android 3.0 r1 API中文文档(108) —— ExpandableListAdapter
- Android多媒体--MediaCodec 中文API文档
- <转>Android2.2 API 中文文档系列(5) —— View
- Android2.2 API 中文文档系列(4) —— Manifest
- Android2.2 API 中文文档系列(1) —— TextView
- Android 3.0 r1中文API文档(103) —— InputMethodManager [输入法]