Android组件总结

     一.基本组件
        1.Activity
                是Android应用中负责与用户交互的组件,相当于swing中的JFrame控件
                | Fragment  可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块
                        对Android 3.0 以前的支持(引用 android.support.v4.app.Fragment)
                        | 在Activity中使用Fragment,需要将Fragment添加到Activity中,可以在布局文件中使用<fragment.../>元素添加;
                          也可在代码中使用FragmentTransaction的add()方法添加
                                | FragmentActivity,在早期版本使用Fragment,必须借助FragmentActivity的支持,只有使用该类的getSupportFragmentManager()方法才能获得                                                      FragmentManager管理器ViewPager 它是Fragment的容器,可同时管理多个Fragment.并允许多个Fragment切换时提供动画效果
                                  FragmentPagerAdpater Adpater类用于为ViewPager提供多个Fragment,通常用于扩展
                                       | getActivity()方法,获取Fragment所在的Activity
                        | 不同场景下的Fragment子类
                                | DialogFragment 对话框界面的Fragment
                                | ListFragment 实现列表界面的Fragment
                                | PreferenceFragment 选项设置界面的Fragment
                                | WebViewFragment WebView界面的Fragment
                        | onAttach() 当Fragment被添加到Activity中时被调用
                        | onCreate() 系统创建Fragment对象后回调该方法,用于初始化.
                        | onCreateView() 当Fragment绘制界面组件时回调该方法
                        | onActivityCreated() 当Fragment所在的Activity被启动完成后回调该方法
                        | onStart() 启动Fragment时被回调
                        | onResume() 恢复Fragment时被回调
                        | onPause() 当用户离开该Fragment时回调该方法
                        | onStop() 停止Fragment时被回调
                        | onDestoryView() 销毁该Fragment所包含的View时被调用
                        | onDestory() 销毁Fragment时被调用
                        | onDeatch() 将该Fragment从Activity中被删除,被替换完成后调用该方法
                        | FragmentManager.findFramentById()/findFragmentByTag()获取指定的Fragment
                        | 调用Fragment的setArguments(Bundle bundle) 可将Activity中的数据传递给Activity
                | 不同场景下的Activity的子类
                        | FragmentActivity 实现账户管理界面
                        | ListActivity 实现列表界面
                                | LauncherActivity 实现Activity界面的Activity,当点击列表项时,所对应的Activity被启动
                        | AliasActivity 启动其他Activity时结束自己
                        | ExpandableListActivity 实现可扩展列表界面
                                | ExpandableListActivityTest 显示一个可扩展的列表窗口
                        | TabActivity 实现Tab界面
                                | setContent(int viewId) 直接将指定的View组件设置成Tab的Content
                                | setContent(Intent intent) 直接指定Intent对应的Activity设置成Tab的Content
                        | PreferenceActivity 实现程序参数设置,存储界面的Activity
                                | PreferenceActivityTest 显示一个显示设置选项参数并进行保存的窗口
                | android:launchMode
                        | standard 标准模式,每次创建一个新的Activity实例,并添加到当前Task栈中
                        | singleTop Task顶单例模式,与standard类似,如果Activity以处于Task栈顶,系统不会创建新的Activity,直接复用已有的Activity
                        | singleTask Task内单例模式,同一个Task栈中只有一个Activity实例
                        | singleInstance 全局单例模式,无论从哪个Task栈中启动Activity,只会创建一个Activity实例
                | onCreate(Bundle b) 创建Activity时被回调,只调用一次
                | onStart() 启动Activity时被回调
                | onRestart() 重新启动Activity时被回调
                | onPause() 暂停Activity时被回调
                | onStop() 停止Activity时被回调
                | onDestory() 销毁Activity时被回调,只调用一次
                | startService(Intent intent) 启动指定service        
                | stopService(Intent intent) 停止指定service
        2.View
                是所有UI控件,容器控件的基类,是Android应用中用户实实在在看到的部分
        3.Service
                与Activity的地位并列.Service位于后台,需要继承Service基类,一般不与用户交互
                | 生命周期
                        | IBinder onBind(Intent intent) Service子类必须实现的方法,方法返回一个IBinder对象,应用程序可通过该对象与Service通讯
                        | void onCreate() 当该Service第一次被创建后立即回调该方法
                        | void onDestroy() 当该Service被关闭之前会回调该方法
                        | void onStartCommand(Intent,int flag,int startId) 每次客户端调用startService(Intent intent)方法启动Service时会回调该方法
                        | boolean onUnbind(Intent intent) Service上绑定的所有客户端都断开连接时回调该方法
                | 子类
                        | IntentService
                                | 创建单独的worker线程处理所有Intent请求
                                | 创建单独的worker线程处理onHandleIntent()方法实现的代码,开发者无需处理多线程问题
                                | 处理完所有请求后IntentService会自动停止
                                | 为Service onBind方法提供了默认的实现,返回null
                                | 为Service onStartCommand方法提供了默认实现,该实现会将请求intent添加到队列中
                        | AIDL Service 跨进程访问Service
                                | AIDL 定义接口的源码必须以.aidl结尾
                                | AIDL 接口中用到的数据类型,除了基本数据类型,String,List,Map,CharSequence之外,其他类型全部需要倒包,即使在同一个包下也需要
                                        | 将接口暴露给客户端
                                                | 定义AIDL接口并定义Service实现,并在AndroidManifest.xml中配置
                                        | 客户端访问AIDL Service
                                                | 创建ServiceConnection对象
                                                | 以ServiceConnection对象作为参数,调用Context的bindService方法,绑定远程service
                                | 实现Parcelable接口,(相当于java实现Serializable) 序列化
                | startService(intent)/stopService(intent) 启动/停止指定service Service和访问者无法进行数据交换
                | bindService()/unbindService  启动/停止指定service Service和访问者可以进行数据交换
        4.BroadcastReceive(广播接收器)
                类似于事件编程中的监听器,其事件源是Android应用中的其他组件
                | 使用步骤
                        | 创建需要启动的BroadcastReceive的Intent
                        | 调用Context的sendBroadcast()或sendOrderedBroadcast() 方法启动指定的BroadcastReceive
                | Broadcast
                        | Normal Broadcast 普通广播 异步的,可以在同一时刻(逻辑上)被所有接收者接收到,消息传递效率比较高
                                | sendBroadcast() 发送Normal Broadcast
                        | Ordered Broadcast 有序广播 按声明的优先顺序依次接收Broadcast
                                | sendOrderedBroadcast() 发送Ordered Broadcast
                | 接收系统广播
                        | ACTION_TIME_CHANGED 系统时间改变
                        | ACTION_DATE_CHANGED 系统日期改变
                        | ACTION_TIMEZONE_CHANGED 系统时区改变
                        | ACTION_BOOT_COMPLETED 系统启动完成
                        | ACTION_PACKAGE_ADDED 系统添加包
                        | ACTION_PACKAGE_CHANGED 系统包改变
                        | ACTION_PACKAGE_REMOVED 系统包删除
                        | ACTION_PACKAGE_RESTART 系统包重启
                        | ACTION_PACKAGE_DATA_CLEARED 系统包的数据被清理
                        | ACTION_BATTERY_CHANGED 电池电量改变
                        | ACTION_BATTERY_LOW 电池电量低
                        | ACTION_POWER_CONNECTED 系统连接电源
                        | ACTION_POWER_DISCONNECTED 系统与电源断开
                        | ACTION_SHUTDOWN 系统被关闭
        5.ContentProvider(数据共享机制)
                应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.
                通常与ContentResolve结合使用,一个应用通过ContentResolve暴露数据,另一个应用通过ContentProvider接收数据
        6.Intent  IntentFilter
                Intent Android应用内组件相互通信的载体. IntentFilter判断被调用组件是否符合隐式Intent
               | 启动组件
                       | 启动Activity
                                | startActivity(Intent i),startActivityForResult(Intent i,int code)
                       | 启动Service
                                | ComponetName startService(Intent i),boolean bindService(Intent i,ServiceConnection conn,int falg)
                       | 启动BroadcastReceiver  Broadcast
                                | sendBroadcast();senOrderedBroadcas();sendStickyBroadcast()
                | <intent-filter.../>元素是AndroidManifest.xml文件中<activity../>元素的子元素,用于配置该Activity所能响应的Intent
                | 属性
                        | Component(显示Intent) 接受一个ComponentName对象 指定包名,类名创建一个可以唯一确定的组件类
                        | Action 代表Intent所要完成的一个抽象的动作
                        | Category 为Action增加额外的附加类别信息
                        | Data 向Action属性提供操作的数据(形式: scheme://host:port/path)
                        | Type 指定Data所指定的Uri对应的MIME类型,这种MIME可以使任意自定义类型
                                | AndroidManifest.xml文件为组件声明Data,Type属性都是通过<data.../>元素
                                        | mimeType="" 声明该组件所能匹配的Intent的Type属性
                                        | scheme"" 声明该组件所能匹配的Intent的Type属性
                                        | host="" 声明该组件所能匹配的Intent的Data属性的scheme部分
                                        | post="" 声明该组件所能匹配的Intent的Data属性的post部分
                                        | path="" 声明该组件所能匹配的Intent的Data属性的path部分
                                        | pathPrefix="" 声明该组件所能匹配的Data属性的path前缀部分
                                        | pathPattern="" 声明该组件所能匹配的Data属性的path后缀部分
                        | Extra 用于多个Action之间的数据交换,该属性值是一个Bundle对象
                        | Flag 用于为该Intent添加一些额外的控制旗标
                                | 可调用addFlags()方法为Intent添加旗标
                                
                | setClass() 设置Intent要启动的组件对应的类
                | setClassName() 设置Intent要启动的组件对应的类名
        7.资源管理器
                | TelephonyManager 电话管理器
                        | TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
                | SmsManager 短息管理器
                        | sendXxxMessage() 发送短息
                | AudioManager 音频管理器
                        | adjuStreamVolume(int streamType,int direction,int flags) 调整手机指定类型的声音
                                | streamType指定声音类型
                                        | STREAM_ALARM 手机闹铃声音
                                        | STREAM_DTMF DTMF音调的声音
                                        | STREAM_MUSIC 手机音乐的声音
                                        | STREAM_NOTIFICATION 系统提示的声音
                                        | STREAM_RING 电话铃声的声音
                                        | STREAM_SYSTEM 手机系统的声音
                                        | STREAM_VOICE_CALL 语音电话的声音
                                | direction 指定对声音增大还是减少
                                | flags 调整声音时的标识,FLAG_SHOW_UI 指定调整声音时显示音量进度条
                        | setMicrophoneMute(boolean on) 设置是否让麦克风静音
                        | setMode(int mode) 设置声音模式,NORML,RINGTONE,IN_CALL
                        | setRingerMode(int ringerMode) 设置手机的电话铃声的模式
                                | RINGER_MODE_MORMAL 正常的手机铃声
                                | RINGER_MODE_SILENT 手机铃声静音
                                | RINGER_MODE_VIBRATE 手机震动
                        | setSpeakerphoneOn(boolean on) 设置是否打开扩音器
                        | setStreamMute(int streamType,boolean status) 将手机指定类型的声音调整为静音
                        | setStreamVolume(int streamType,int index,int flags)直接设置手机的指定类型的音量值
               | Vibrator 振动器
                        | vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);
                        | vibrate(long milliseconds) 控制手机震动毫秒数
                        | vibrate(long[] pattern,int repeat) 指定手机以pattern指定的模式震动
                        | cancel() 关闭手机震动         
               | AlarmManager 手机闹钟服务
                        | alarmManager = (AlarmManager)getSystemService(Service.ALARM_SERVICE);        
                        | set(int type,long triggerAtTime,PendingIntent operation) 设置在triggerAtTime时间启动operation参数指定的组件
                                | triggerAtTime指定定时服务的类型
                                        | ELAPSED_REALTIME 指定从现在时间过了一段时间后启动operation所对应的组件
                                        | ELAPSED_REALTIME_WAKEUP 指定从现在开始时间过了一段时间后启动operation所对应的组件 系统关机也执行
                                        | RTC 指定当系统调用System.currentTimeMillis()方法返回值与triggerAtTime相等时启动operation所对应的组件
                                        | RTC_WAKEUP 指定当系统调用System.currentTimeMillis()方法返回值与triggerAtTime相等时启动operation所对应的组件 系统关机也执行
                        | setInexactRepeating(int type,long triggerAtTime,long interval,PendingIntent operation) 设置一个非常精确的周期任务,
                        | setRepeating(int type,long triggerAtTime,long interval,PendingIntent operation) 设置一个周期性执行的系统任务
                        | cancel(PendingIntent operation) 取消AlarmManager的定时服务
二.UI组件
        布局组件
        1.LinearLayout 线性布局
                将容器里的组件一个挨一个排起来(可控制横向排列或纵向排列)
        2.TableLayout 表格布局
                采用行,列的形式管理UI组件,其中一个TableRow代表一行
        3.FrameLayout 帧布局
                 为每个组件创建一个空白区域(称为一帧),每个组件占用一帧
                | ViewAnimator 可以在View切换时出现动画效果
                        | ViewFlipper 视图切换,出现动画效果
                | ViewSwitcher 【视图切换组件】,多个View叠在一个,每次显示一个View
                        | ImageSwitcher 【图像切换器组件】
                        | TextSwitcher 【文本切换器组件】
                | DatePicker 【日期选择器】
                | TimePicker 【时间选择器】
                | NumberPicker 【数值选择器】 用户可以键盘输入,也可以拖拽选择数值
                | ScrollView 【垂直滚动视图】 为普通组件添加滚动条,其中最多只能包含一个组件
                | HorizontalScrollView【水平滚动视图】 为普通组件添加滚动条,其中最多只能包含一个组件
        4.RelativeLayout 相对布局
                其内组件总是相对相对兄弟组件,父容器来决定位置
        5.GridLayout 网格布局(4.0新增)
                相当于html中的table标签,将整个容器划分成 row * column 个网格,每个网格可放一个组件,也可设置组件跨多少列多少行
        6.AbsoluteLayout 绝对布局
                通过自定义X坐标与Y坐标控制组件位置
        TextView组件
        1.TextView 【显示文本框】
                | CheckedTextView  【提供勾选显示文本框】
                | Button 【按钮】 使用9patch图片可设置图片拉伸过程中不被改变的部分
                        | RadioButton【单选按钮】一般与RadioGroup联合使用,保证一组单选按钮只能选中一个
                        | CheckBox 【复选按钮】
                        | ToggleButton 【状态开关按钮】提供两种状态,通常用于程序中状态切换
                        | Switch 【开关按钮】
                | DigitalClock 【数字时钟】
                | AnalogClock 【模拟时钟】不显示当前秒数
                | Chronometer 【计时器】
          TextView没有边框,实现边框可通过设置背景实现
        2.EditText 【用户输入文本框】
                | AutoCompleteTextView 【自动完文本框】
                        | MultiAutoCompleteTextView 【自动完文本框】允许输入多个提示项,多个提示项以逗号分隔
                | ExtractEditText 【EditText的底层服务】
        3.ImageView 【显示图片文本框】
                | ImageButton 【图片按钮】
                | ZoomButton 【放大/缩小按钮】
                | QuickContackBadge【关联联系人按钮】
        4.AdapterView 抽象基类,用于列表显示
                | ListView 【列表组件】 直接使用    
                        | ExpandableListView 【可扩展的列表组件】他把列表项分为几组,每组又可包含多个列表项
                | ListActivity 【列表抽象类】用于Activity继承
                | Spinner 【列表选择框】提供一个供用户选择的列表框
                | Gallery 【列表拖拽框】提供一个供用户拖拽的列表框(不建议使用)
                | AdapterViewFlipper 提供多个View组件,每次只能显示一个,可以通过showPrevious()和showNext()空只显示上一个下一个,StartFilpping()自动播放
                | StackView 以"堆叠"的方式显示多个列表项,可以拖走或拖进位于顶端的View,可以通过showPrevious()和showNext()空只显示上一个下一个
        5.Adapter接口及其实现类接口及其实现类
                | ListAdapter Adapter子接口,为AbsListAdapter提供列表项
                        | ExpandableListAdapter 子接口,为ExpandableListView提供列表项
                        | 实现方法:1.扩展BaseExpandableListAdapter 实现ExpandableListAdapter
                        |          2.使用SimpleExpandableListAdapter 将两个List集合包装成ExpandableListAdapter
                        |          3.使用SimpleCursorTreeAdapter 将 Cursor数据包装成SimpleCursorTreeAdapter
                | SpinnerAdapter Adapter子接口,为SpinnerAdapter提供列表项    
                | ArrayAdapter 简单易用的Adapter,用于将List集合的多个对象包装成多个列表项
                |        
                | SimpleCursorAdapter 与SimpleAdapter类似,用于包装Cursor提供的数据
                | BaseAdapter 通常用于拓展,可以达到对列表项的最大限度的定制
        6.ProgressBar 【进度条组件】
                | style="@android:style/Widget.ProgressBar.Large"  大环形进度条
                | style="@android:style/Widget.ProgressBar.Small"  小环形进度条
                | style="@android:style/Widget.ProgressBar.Horizontal"  水平进度条
                | 调用Activity的requestWindowFeature() 标题栏进度条
                        | 入参为 Window.FEATURE_INDETERMINATE_PROGRESS 不带进度的进度条
                        | 入参为 Window.FEATURE_PROGRESS 带进度的进度条
        7.SeekBar【拖动条组件】
        8.RatingBar【星级评分条组件】
        9.Toast【显示提示信息框】此提示信息不会获得焦点,过一段时间会自动消失
        10.CalendarView 【日历视图】
        11.SearchView 【搜索框】
        12.TabHost 【选项卡】    
                需继承TabActivity,通过getTabHost()获取TabHost对象(不建议使用)   
                | TabWidget 代表选项卡的标签条
                | TabSpec 代表选项卡的一个Tab页面
                        | newTabSpec() 创建选项卡
                        | addTab() 添加选项卡
        13.Notification 显示在手机状态栏的通知
                程序一般通过NotificationManager服务来发送Notification
                    Notification.Builder 创建Notification类
                        | setDefaults() 设置LED灯,音乐,震动等
                        | setAutoCancel() 设置点击通知后,状态栏自动删除通知
                        | setContentTitle() 方法设置通知标题
                        | setContentText() 方法设置通知内容
                        | setSmalllcon() 为通知设置图标
                        | setLargelcon() 为通知设置大图标
                        | setTick() 设置通知在状态栏提示的文本
                        | setContentIntent() 设置点击通知后将要启动的程序组件对应的PendingIntent
            14.对话框
                        | AlertDialog 功能最丰富应用最广的对话框
                        | ProgressDialog 进度对话框,对简单进度条的封装
                        | DatePickerDialog 日期选择对话框,对DatePicker的封装
                        | TimePickerDialog 时间选择对话框,对TimePicker的封装
                        | activity  android:theme="@android:style/Theme.Dialog"
            15.PopupWindow 可以创建类似对话框风格的窗口
                    使用方法:调用PopupWindow构造器,创建PopupWindow对象. 调用PopupWindow的showAsDropDown(view)方法,作为view的下拉组件显示
                        调用PopupWindow的showAtLocation()方法,将PopupWindow在指定的位置显示
            16.Menu 菜单
                        | option menu 选项菜单(最常规的菜单) 不支持勾选标记,不支持嵌套子菜单
                        | SubMenu 子菜单(点击了子菜单将弹出悬浮窗口显示子菜单项) 不支持菜单项图标,不支持嵌套子菜单
                        | ContextMenu 上下文菜单(长按视图控件出现的菜单) 不支持菜单快捷键和图标
                        | PopupMenu 弹出式菜单 默认会显示在该组件的上方或下方
                        | setCheckable(boolean) 设置菜单选项是否可以被勾选;setGroupCheckable()设置group组里的所有菜单是否可选
                        | setAlphabeticShortcut 设置字母快捷键;setNumberShortcut 设置数字快捷键;setShortcut() 同时设置两种快捷键
                        | setIntent() 启动其他Activity
    
            17.ActionBar 活动条 Android不强制手机提供Menu键,无法打开菜单,可使用ActionBar作为解决方案,可将选项菜单显示成ActionItem
                   ActionBar除了可以显示普通ActionItem外,还可显示普通UI组件(定义ActionItem时使用android:actionViewClass属性指定ActionView实现类,使用android:actionLayout指定
                                ActionView对应的视图资源)
                        | 在AndroidManifest.xml的sdk配置中,如果指定了目标版本高于11(Android 3.0)会默认启用ActionBar
                        | android:theme="@android:style/Theme.Holo.NoActionBar" 关闭ActionBar
                        | setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) 设置使用Tab方式导航
                        | setDisplayHomeAsUpEnabled(boolean) 设置是否将该应用程序图标转换成可点击图标,并在图标上添加一个向左箭头
                        | setDispalyOptions(int) 通过传入int控制ActionBar显示选项;setDisplayShowHomeEnabled(设置是否显示应用程序图标)
                        | setHomeButtonEnabled(boolean) 设置是否将该应用程序图标转换成可点击按钮
                        | setShowAsAction(int Action Enum) 设置是否将菜单显示在ActionBar上作为ActionItem
                        | SHOW_AS_ACTION_ALWAYS 总是将MenuItem显示在ActionBar上
                        | SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 将该ActionView折叠成普通菜单项
                        | SHOW_AS_ACTION_IF_ROOM 当ActionBar位置足够时才显示MenuItem
                        | SHOW_AS_ACTION_NEVER 不将MenuItem显示在ActionBar上
                        | SHOW_AS_ACTION_WITH_TEXT 将MenuItem显示在ActionBar上,并显示该菜单文本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值