android开发笔记—基础篇.doc_第1页
android开发笔记—基础篇.doc_第2页
android开发笔记—基础篇.doc_第3页
android开发笔记—基础篇.doc_第4页
android开发笔记—基础篇.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android开发笔记文件编号:YH受控状态:受控程序版本:受控期限:永久起草人:起草日期:2013-10-24审核人:审核日期:批准人:批准日期:分发号:YH分发日期:密级:机密版权所有 不得复制本文包含信息的所有权归本人。未经本人书面许可,任何人不得复制或泄露这些信息给其他未经授权的人。 android开发文档控制记录序号修改状态修改内容修改人完成时间V1.0创建文档完成本文档的所有章节内容2013-10-24第 2 页 共40页 android开发 第 40 页 共 40 页 编写:目录文档控制记录21、引言32、Android简介52.1、android框架52.2、android开发环境53、Android四大核心组件73.1、Activity73.1.1 Activity概述73.1.2 Activity生命周期83.1.3 Activity生命周期图解93.2、Service103.2.1 Service概述103.2.2 Service特点103.2.3 Service两种类型103.2.4 Service生命周期113.3、Broadcast Receiver123.3.1 Broadcast Receiver概述123.3.2 Broadcast Receiver使用123.4、ContentProvider133.3.1 ContentProvider 概述134、Android应用核心Intent144.1、Intent简介144.2、Intent构成154.3、Intent的公共构造函数154.4、IntentFilter介绍155、Android用户界面165.1、Android用户界面之布局165.2、Android用户界面之常用控件185.2.1 ListView185.2.2 UIcontrols195.2.3 BaseAdapter335.3、Android后退事件处理35附录、经典示例381、计算器381、引言目的:学习android编程时,所做笔记,后期会一一添加; 2、Android简介2.1、android框架2.2、android开发环境Eclipse+ADT+Android_SDK3、Android四大核心组件3.1、Activity 3.1.1 Activity概述1、 Activity 是一个程序的组件之一。它的主要功能是提供界面。 一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联。必须有一个activity被指定为 主activity,它是程序启动时首先显示的界面。每个activity都可以随意启动其它的activity。每当一个activity被启动,则前 一个activity就被停止。一个程序中的所有启动的activity都被放在一个栈中,所以被停止的activity并没有销毁,而在存于栈中。新启 动的activity先被存放于栈中,然后获得输入焦点。在当前活动的activity上点返回键,它被从栈中取出,然后销毁,然后上一个 activity被恢复。 当一个activity因为新的activity启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回 调方法以通知activity,这些回调方法被统称为“生命周期回调方法”。这些回调方法分别在Activity被创建、停止、恢复、销毁时被调用。3.1.2 Activity生命周期 - Activity 的完整生命周期:自第一次调用onCreate()开始,直至调用onDestroy()为止。Activity 在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。例如,如果Activity 有一个线程在后台运行从网络上下载数据,它会在onCreate()创建线程,而在onDestroy()销毁线程。 - Activity 的可视生命周期:自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位 于前台或者也不与用户进行交互。在这两个方法之间,可以保留用来向用户显示这个Activity 所需的资源。例如,当用户不再看见显示的内容时,可以在onStart()中注册一个BroadcastReceiver 来监控会影响UI 的变化,而在onStop()中来注消。onStart() 和onStop() 方法可以随着应用程序是否为用户可见而被多次调用。 - Activity 的前台生命周期:自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity 位于前台最上面并与用户进行交互。Activity 会经常在暂停和恢复之间进行状态转换例如当设备转入休眠状态或者有新的Activity 启动时,将调用onPause() 方法。当Activity 获得结果或者接收到新的Intent 时会调用onResume() 方法。3.1.3 Activity生命周期图解注:Activity的数据传递(通过Intent和资源树的方式)Intent i = new Intent(MainActivity.this, Aty1.class);/资源树Bundle data = new Bundle();data.putString(txt, Hello Aty1);i.putExtras(data);startActivityForResult(i, 0);3.2、Service3.2.1 Service概述Service是Android系统的后台服务组件,适用于开发无界面、长时间运行的应用功能。Service的本质就是响应客户端请求,要提供服务,就必须建立接收请求,处理请求,应答客服端的框架。3.2.2 Service特点1、没有用户界面;2、比处于非活动状态的Activity 优先级高,不会轻易被Android系统终止。即使Service被系统终止,在系统资源恢复后Service也将自动恢复运行状态;3、用于进程间通信(Inter Process Communication,IPC),解决两个不同Android应用程序进程之间的调用和通讯问题;3.2.3 Service两种类型1、本地服务(Local Service):用于应用程序内部,该服务依附在主进程上。 Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。2、远程服务(Remote Service):用于android系统内部的应用程序之间,该服务是独立的进程。由于是独立的进程,因此在Activity所在进程被Kill的时候,该服务依然在运行,不受其他进程影响,有利于为多个进程提供服务具有较高的灵活性。3.2.4 Service生命周期全生命周期 开始:onCreate()事件回调函数,完成Service的初始化工作 结束:onDestroy()事件回调函数,释放Service所有占用的资源;活动生命周期 开始:onStart()事件回调函数 结束:但没有与之对应的(OnStop())函数,因此可以近似认为活动生命周期也是以onDestroy()标志结束。3.3、Broadcast Receiver3.3.1 Broadcast Receiver概述Broadcast是广播,和Android内的事件一样,它可以发出一个广播(事件),注册了该广播接收器(事件监听器)的所有组件都会接收到该广播, 从而调用自己的响应方法(事件响应处理)。只不过事件处理机制是程序级,而广播是系统级别的。它们还有一个共同点,都是通过Intent来操作的。广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式就更多了,这样看来,广播机制似乎是多余的。然而,广播机制却是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。3.3.2 Broadcast Receiver使用定义一个广播接收器,这是必须做的一步,无论是使用系统内置的广播事件还是自定义事件,否则程序将无法响应广播。定义广播接收器比较简单,继承 BroadcastRecieve类,重写onRecieve方法,该方法是在接收到广播时调用。定义好广播接收器后,需要注册它,有两种方法,一种是选 择在Mainfest.xml文件里注册;另外一种是同代码注册。定义发起广播的组件,比如:在Activity类里的添加一个Button,点击它发出广播,这个过程是通过sendBroadcast(Intent intent)来实现的。3.4、ContentProvider3.3.1 ContentProvider 概述Content Provider,内容提供器,与内容(数据)的存取(存储、获取)有关,是Android应用程序的四大组成部分之一。是android中的跨应用访问数据机制。当一个程序需要把自己的数据暴露给其他程序使用时,该程序就可以通过提供ContentProvider来实现,其他应用程序就可以通过 ContenResolver来操作Content Provider暴露的数据。应用程序通过ContentProvider开放了自己的数据,该应用程序不需要启动其他应用程序都可以操作开放的数据,包括增删改查操作。4、Android应用核心Intent4.1、Intent简介Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部 的Activity/Service之间的交互。Intent这个英语单词的本意是“目的、意向”等,对于很多程序元来说,这可能是一个不太容易理解的抽 象概念,因为它与我们平常使用的简单函数/方法调用,或者通过库调用接口的方式不太一样。在Intent的使用中你看不到直接的函数调用,相对函数调用来 说,Intent是更为抽象的概念,利用Intent所实现的软件复用的粒度是Activity/Service,比函数复用更高一些,另外耦合也更为松 散。Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似,只是复用的粒度有所差 别;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于 降低发送者和接收者之间的耦合。注意:/显式Intent,也可用setClass(Context,Class);Intent i = new Intent();i.setComponent(new ComponentName(ents,ents.Aty1);无需intent-filter/隐式IntentIntent i = new Intent(ent.action.Aty1);startActivity(i);相关AndroidManifest.xml添加: 4.2、Intent构成1、组件名称Component name 在Intent的查找组件策略中,其中的一种方法是显示查找,直接通过组件名称来查找。2、动作-Action action是指Intent将要执行的动作,是一个字符串常量。在Intent类里面定义了大量的Action常量属性,例 如: ACTION_CALL (打电话)等。 3、数据-Data data属性是执行动作的Url和MIME类型,不同的action有不同的data数据指定。4、分类-Category Category属性是一个执行Action的附加信息,他包含了需要处理Intent的组件的种类的信息。5、附加信息Extras 传递给目标组件的键值对信息,是所有附加信息的集合4.3、Intent的公共构造函数1、Intent() 空构造函数2、Intent(Intent intent) :拷贝构造函数3、Intent(String action) :指定action类型的构造函数4、Intent(String action, Uri uri) :指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider5、Intent(Context packageContext, Class .class) :传入组件的构造函数,也就是上文提到的,显示Intent;6、Intent(String action, Uri uri, Context packageContext, Class cls) :前两种结合体4.4、IntentFilter介绍活动、服务、广播接收者为了告知系统能够处理哪些隐式Intent,它们可以有一个或多个Intent过滤器。每个过滤器描述组件的一种能力,即 乐意接收的一组Intent。实际上,它筛掉不想要的Intents,也仅仅是不想要的隐式Intents。一个显式Intent总是能够传递到它的目标 组件,不管它包含什么;不考虑过滤器。但是一个隐式Intent,仅当它能够通过组件的过滤器之一才能够传递给它。一个Intent过滤器是一个IntentFilter类的实例。因为Android系统在启动一个组件之前必须知道它的能力,但是Intent 过滤器通常不在java代码中设置,而是在应用程序的清单文件(AndroidManifest.xml)中以元素设置。但有一个例外,广播接收者的过滤 器通过调用Context.registerReceiver()动态地注册,它直接创建一个IntentFilter对象。一个Intent过滤器有对应于Intent对象的动作、数据、种类的字段。过滤器要检测隐式Intent的所有这三个字段,其中任何一个失败,Android系统都不会传递Intent给组件。然而,因为一个组件可以有多个Intent过滤器,一个Intent通不过组件的过滤器检测,其它 的过滤器可能通过检测。5、Android用户界面5.1、Android用户界面之布局 线型布局(LinearLayout) LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结 构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列 两个元素,每一个元素里再包含一个LinearLayout进行水平排列。 单帧布局(FrameLayout) FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它 们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。显示效果如下,第一个TextView被第二 个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。 表格布局(TableLayout) TableLayout顾名思义,此布局为表格布局,适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。 相对布局(RelativeLayout) RelativeLayout按照各子元素之间的位置关系完成布局。在此布局中的子元素里与位置相关的属性将生效。例如 android:layout_below, android:layout_above等。子元素就通过这些属性和各自的ID配合指定位置关系。注意在指定位置关系时,引用的ID必须在引用之前,先 被定义,否则将出现异常。 绝对布局(AbsoluteLayout) AbsoluteLayout是绝对位置布局。在此布局中的子元素的android:layout_x和android:layout_y属性将 生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。 在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。注意:android:layout_weight:分割父级容器的比例5.2、Android用户界面之常用控件5.2.1 ListView 1、ListView概念ListView是用来显示一个列表的控件。 它在android源代码中是继承AbsListView类的,而AbsListView类是继承于AdapterView类的,而AdapterView类是继承ViewGroup类的。2、 常用方法 android:choiceMode 规定此ListView所使用的选择模式。缺省状态下,list没有选择模式。 android:divider 规定List项目之间用某个图形或颜色来分隔。 android:dividerHeight 分隔符的高度。若没有指明高度,则用此分隔符固有的高度。 android:entries 引用一个将使用在此ListView里的数组。若数组是固定的, 使用此属性将比在程序中写入更为简单。 android:footerDividersEnabled 设成flase时,此ListView将不会在页脚视图前画分隔符。 此属性缺省值为true。 属性值必须设置为true或false。 android:headerDividersEnabled 设成flase时,此ListView将不会在页眉视图后画分隔符。 此属性缺省值为true。 属性值必须设置为true或false。 注意: 1、ArrayAdapter泛型数组(数据适配器)和BaseAdapter自定义列表项的使用!2、BaseAdapter的getView函数的优化机制convertView不为空的时候使用,减少内存资源的消耗;5.2.2 UIcontrols RadioGroupRadioButton和RadioGroup的关系1、 RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器2、 每个RadioGroup中的RadioButton同时只能有一个被选中3、 不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中4、 大部分场合下,一个RadioGroup中至少有2个RadioButton5、 大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置 CheckBox1、CheckBox是多项选择,允许用户用列表中选择一个或多个选项。 它在android源代码中是继承CompoundButton类的,而CompoundButton类是继承于Button类的。2、 CheckBox和Button一样,也是一种古老的控件,它的优点在于,不用用户去填写具体的信息,只需轻轻点击,缺点在于只有“是”和“否”两种情况,但我们往往利用它的这个特性,来获取用户的一些信息。 DatePickerDatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker添加OnDateSetListener监听器。 TimePickerTimePicker也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行 选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加 OnTimeSetListener监听器。 Spinner 概述o Spinner是一个每次只能选择所有项的一个项的控件。它的项来自于与之相关联的适配器中,及下拉列表. 重要属性o android:prompt:当Spinner对话框关闭时显示该提示 重要方法o setPrompt(CharSequence prompt):设置当Spinner对话框关闭时显示的提示o performClick():如果它被定义就调用此视图的OnClickListenero setOnItemClickListener(AdapterView.OnItemClickListener l):当项被点击时调用o onDetachedFromWindow():当Spinner脱离窗口时被调用。注意:/设置监听器,此为选择监听器spinner.setOnItemSelectedListener(new SpinnerListener();/实现监听器的方法class SpinnerListener implements OnItemSelectedListener public void onItemSelected(AdapterView adapterView, View view, int position, long id) / TODO Auto-generated method stub String selected = adapterView.getItemAtPosition(position) .toString(); /context传显示的activity Toast.makeText(AtyUsingSpinner.this, selected, Toast.LENGTH_SHORT).show(); System.out.println(selected);public void onNothingSelected(AdapterView arg0) / TODO Auto-generated method stub System.out.println(nothingSelected); ProgressBar ProgressBar概述 在Adnroid中,系统提供的ProgressBar主要有两种样式。 第一种Indeterminate模式,也是默认的一种:就是一个小圈圈在那转圈。 第二种,就是传统意义上的进度条。 第一种一般做为一个不需要让用户知道操作完成度,或者无法知道操作完成度时,仅仅用作一个提示器来告诉用户操作仍在进行,第二种则可以设置进度, 让用户看到操作进行了多少,大概还需要等待多久。两种方式各有其用途,至于用哪一个就要看场景了。你也可以自定义ProgressBar的样式。 你需要注意,Progressbar仅仅是一个指示器,操作是需要在后台进行的。你的Progressbar的进度要尽量准确的反应后台操作的进 度。当Progressbar进度显示为完成的话,你要确保你的的程序的后台操作已经完成。不然的话,容易给用户一些错误的心理预期,当预期与事实不符合 的时候,用户可能会有受到欺骗的感觉。 ProgressBar重要方法 setMax(int):设置Progressbar进度的最大值 setProgress(int):设置当前进度 getMax():返回这个进度条的范围的上限 getProgress():返回进度 getSecondaryProgress():返回次要进度 incrementProgressBy(int diff):指定增加的进度 isIndeterminate():指示进度条是否在不确定模式下 setIndeterminate(boolean indeterminate):设置不确定模式下 setVisibility(int v):设置该进度条是否可视 AutoCompleteTextView AutoCompleteTextView概述 一个继承自AutoCompleteTextView的可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。 用户必须提供一个MultiAutoCompleteTextView.Tokenizer(逗号)以用来区分不同的子串。 常用方法: setAdapter()方法:这里要传递的adapter参数必须是继承ListAdapter和Filterable的,其中 arrayAdapter和simpleAdapter都能满足要求,我们常用arrayAdapter,因为他不需要像simpleAdapte那样设 置他的显示位置和textview组件。 setDropDownHeight方法 ,用来设置提示下拉框的高度,注意,这只是限制了提示下拉框的高度,提示数据集的个数并没有变化 setThreshold方法,设置从输入第几个字符起出现提示 setCompletionHint方法,设置提示框最下面显示的文字 setOnFocusChangeListener方法,里面包含OnFocusChangeListener监听器,设置焦点改变事件 showdropdown方法,让下拉框弹出来注意:/指定逗号作为分隔符,以区分不同的输入子串mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer();android:textColor=#ff000000android:completionThreshold=1#ff000000为透明值和RGB三色配置; SeekBar SeekBar概述o SeekBar是ProgressBar的扩展,在其基础上增加了一个可拖动的thumb(注:就是那个可拖动的图标)。用户可以触摸thumb 并向左或向右拖动,再或者可以使用方向键都可以设置当前的进度等级。不建议把可以获取焦点的widget放在SeekBar的左边或右边。o SeekBar可以附加一个SeekBar.OnSeekBarChangeListener以获得用户操作的通知。 内部类o 接口 SeekBar.OnSeekBarChangeListenero 一个回调函数用来当进度等级发生改变时通知客户端 XML属性o android:thumb Seekbar上绘制的thumb(可拖动的那个图标) GridView GridView概述o GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。 构造函数o public GridView (Context context) 创建一个默认属性的GridView实例o public GridView (Context context, AttributeSet attrs) 创建一个带有attrs属性的GridView实例o public GridView (Context context, AttributeSet attrs, int defStyle) 创建一个带有attrs属性,并且指定其默认样式的GridView实例 XML属性o android:columnWidth 设置列的宽度。关联的方法为:setColumnWidth(int)o android:gravity 设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、 fill_vertical、center_horizontal、fill_horizontal、center、fill、 clip_vertical可以多选,用“|”分开。关联方法:setGravity (int gravity)o android:horizontalSpacing 两列之间的间距。关联方法:setHorizontalSpacing(int)o android:numColumns 列数。关联方法:setNumColumns(int)o android:stretchMode 缩放模式。关联方法:setStretchMode(int)o android:verticalSpacing 两行之间的间距。关联方法:setVerticalSpacing(int)0 ProgressDialog ProgressDialog概述o 一种可以显示显示进度轮或进度条的对话框。因为它是一种扩展的AlertDialog(弹出对话框),所以它也支持按钮。 方法o setProgressStyle:设置进度条风格,风格为圆形,旋转的。o setTitlt:设置ProgressDialog 标题o setMessage:设置ProgressDialog提示信息;o setIcon:设置ProgressDialog标题图标;o setIndeterminate:设置ProgressDialog 的进度条是否不明确; 这个属性对于ProgressDailog默认的转轮模式没有实际意义,默认下设置为true,它仅仅对带有ProgressBar的Dialog有作 用。修改这个属性为false后可以实时更新进度条的进度。o setCancelable:设置ProgressDialog 是否可以按返回键取消;o CancelListner:当前Dialog强制取消之后将会被执行,通常用来清理未完成的任务。o setButton:设置ProgressDialog 的一个Button(需要监听Button事件);o show:显示ProgressDialog。1 Notification Notification概述 Notification是将图标添加到系统的状态栏(带有一个可选的滚动文本消息),同时将扩展信息添加到“通知”窗口。当用户选择这个扩展信 息时,android系统将触发一个由通知定义的Intent(通常是载入一个活动)。当然也可以为这个通知配置声音、震动以及闪光灯来提醒用户。当应用 运行在后台服务中且需要用户注意到这个事件的时候可以使用notification。 Notification类表示一个持久的通知,将提交给用户使用NotificationManager。Notification是一种让应 用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。 创建一个Notification的步骤简单可以分为以下四步: 第一步:通过getSystemService()方法得到NotificationManager对象; 第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等; 第三步:通过NotificationManager对象的notify()方法来执行一个notification; 第四步:通过NotificationManager对象的cancel()方法来取消一个notificatioin; NotificationManager的三个公共方法: cancel(int id) 取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走。 cancelAll() 取消以前显示的所有通知。 notify(int id, Notification notification) 把通知持久的发送到状态条上。 Notification的属性: audioStreamType 当声音响起时,所用的音频流的类型 contentIntent 当通知条目被点击,就执行这个被设置的Intent contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示 defaults 指定哪个值要被设置成默认的 deleteIntent 当用户点击”Clear All Notifications”按钮区删除所有的通知的时候,这个被设置的Intent被执行o icon 状态条所用的图片o iconLevel 假如状态条的图片有几个级别,就设置这里o ledARGB LED灯的颜色o ledOffMS LED关闭时的闪光时间(以毫秒计算)o ledOnMS LED开始时的闪光时间(以毫秒计算)o number 这个通知代表事件的号码o sound 通知的声音o tickerText 通知被显示在状态条时,所显示的信息o vibrate 振动模式o when 通知的时间戳注意:如果使Notification常驻在状态栏可以把Notification的flags属性设置为FLAG_ONGOING_EVENT2 ScrollView ScrollView概述o 一种可供用户滚动的层次结构布局容器,允许显示比实际多的内容。ScrollView是一种FrameLayout,意味需要在其上放置有自己滚 动内容的子元素。子元素可以是一个复杂的对象的布局管理器。通常用的子元素是垂直方向的LinearLayout,显示在最上层的垂直方向可以让用户滚动 的箭头。o TextView类也有自己的滚动功能,所以不需要使用ScrollView,但是只有两个结合使用,才能保证显示较多内容时候的效率。但只有两者结合使用才可以实现在一个较大的容器中一个文本视图效果。o ScrollView只支持垂直方向的滚动。 构造函数o public ScrollView (Context context) 创建一个默认属性的ScrollView实例。o public ScrollView (Context context, AttributeSet attrs) 创建一个带有attrs属性的ScrollView 实例。o public ScrollView (Context context, AttributeSet attrs, int defStyle) 创建一个带有attrs属性,并且指定其默认样式的ScrollView实例。3 RatingBar RatingBar概述o RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以 触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用 ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。o 当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。o 只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。o 次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。4 ImageSwitcher ImageSwitcher概述 ImageSwitcher控件,是一个图片切换控件,可以在一系列的图片中,一张一张的显示特定的图片,利用它,可以实现类似图片浏览器那样的 “上一张”、“下一张”的效果。需要注意的是,ImageSwitcher在使用时,需要一个ViewFactory,用来区分显示图片的容器和它的父窗 口。 公共方法 public void setImageDrawable (Drawable drawable) 绘制图片 public void setImageResource (int resid) 设置图片资源库 public void setImageURI (Uri uri) 设置图片地址5 Gallery Gallery概述 一个锁定中心条目并且拥有水平滚动列表的视图。 Gallery(画廊)使用Theme_galleryItemBackground作为Gallery(画廊)适配器中的各视图的默认参数。如果你没有设置,你就需要调整一些Gallery(画廊)的属性,比如间距。 Gallery(画廊)中的视图应该使用Gallery.LayoutParams作为它们的布局参数类型。 公共方法 public boolean dispatchKeyEvent (KeyEvent event) 在焦点路径上分发按钮事件到下一个视图。该路径从视图树的顶端遍历到当前获得焦点的视图。如果当前视图已获得焦点,就分发给自身。否则,就分发到下一个节 点的焦点路径上。该方法监听任何按钮事件。 public void dispatchSetSelected (boolean selected) 分发setSelected给视图的子类。 public ViewGroup.LayoutParams generateLayoutParams (AttributeSet attrs) 返回一个新的已设置属性集合的布局参数。 public boolean onDown (MotionEvent e) 当轻击和按下手势事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论