因为android View非常强大,
这篇博客会长期更新
1.ListView
ListView->AbsListView->AdapterView->ViewGroup->View
2.TextView
TextView->View
3.Button
Button->TextView->View
4.View
View--impl-->KeyEvent.Callback(OnKeyDown,OnKeyUp接口里定义的抽象方法),这点和Activity是实现的同一个接口
5.Activity
Activity->ContextThemeWrapper->ContextWrapper->Context(一个抽象类,没有继承任何父类,也没有实现任何接口)
Activity--impl--->KeyEvent.Callback(OnKeyDown,OnKeyUp接口里定义的抽象方法)
--------------------------------------------------------以下通过至顶向下的方法研究View--------------------------------------------------------------
0.包:android.view
1. 类:View (直接子类有11个,间接子类64个)
extends Object
ipml-->Drawable.callback(不清楚),KeyEvent.callback(通过回调处理view上的键值事件)
AccessibilityEventSource(暂不清楚)
2.1 Analogclock
该view是一个模拟时钟,只有时针和分针,对应的有一个数字时钟DigitalClock,时分秒都有,不过这个DigitalClock已经过时,
取代的是TextClock,而TextClock类似Analogclock ,也只是显示时针和分针
2.2 ImageView (2个子类)
3.2.2.1 ImageButton(1个子类)
4.3.2.2.1.0 ZoomButton(API:17 android 4.2.2)可理解成控制缩放的Button,这个控件真没有感觉有什么特别的地方,和ImageButton比就是长按的时候
会不停的回调onclick事件,而且只能加载图片,没有text属性,和ZoomControls类似,zoomcontrols就是要监听
setOnZoomInClickListener和setOnZoomOutClickListener,传递的还是个OnClickListener接口的实现类,而且
ZoomControls是继承 LinearLayout
3.2.2.2 QuickContactBadge
快捷的联系人标记,点击这个控件会有一个联系人弹窗,可以给联系人打电话或发短信
2.3 keyboardview(先不研究,应该是跟输入法相关)
2.4 MediaRouteButton(先不研究)
2.5 ProgressBar
3.2.5.0 AbsSeekBar (抽象类)
3.2.5.0.1 RatingBar 评分条(就是几颗星那个条)
3.2.5.0.2 SeekBar拖动条
2.6 Space(先不研究)
2.7 SurfaceView (android 2D游戏画布)
2.9 TextureView (类似于SurfaceView的一个View)
2.10 ViewGroup
1.ListView
ListView->AbsListView->AdapterView->ViewGroup->View
2.TextView
TextView->View
3.Button
Button->TextView->View
4.View
View--impl-->KeyEvent.Callback(OnKeyDown,OnKeyUp接口里定义的抽象方法),这点和Activity是实现的同一个接口
5.Activity
Activity->ContextThemeWrapper->ContextWrapper->Context(一个抽象类,没有继承任何父类,也没有实现任何接口)
Activity--impl--->KeyEvent.Callback(OnKeyDown,OnKeyUp接口里定义的抽象方法)
--------------------------------------------------------以下通过至顶向下的方法研究View--------------------------------------------------------------
0.包:android.view
1. 类:View (直接子类有11个,间接子类64个)
extends Object
ipml-->Drawable.callback(不清楚),KeyEvent.callback(通过回调处理view上的键值事件)
AccessibilityEventSource(暂不清楚)
2.1 Analogclock
该view是一个模拟时钟,只有时针和分针,对应的有一个数字时钟DigitalClock,时分秒都有,不过这个DigitalClock已经过时,
取代的是TextClock,而TextClock类似Analogclock ,也只是显示时针和分针
2.2 ImageView (2个子类)
3.2.2.1 ImageButton(1个子类)
4.3.2.2.1.0 ZoomButton(API:17 android 4.2.2)可理解成控制缩放的Button,这个控件真没有感觉有什么特别的地方,和ImageButton比就是长按的时候
会不停的回调onclick事件,而且只能加载图片,没有text属性,和ZoomControls类似,zoomcontrols就是要监听
setOnZoomInClickListener和setOnZoomOutClickListener,传递的还是个OnClickListener接口的实现类,而且
ZoomControls是继承 LinearLayout
3.2.2.2 QuickContactBadge
快捷的联系人标记,点击这个控件会有一个联系人弹窗,可以给联系人打电话或发短信
2.3 keyboardview(先不研究,应该是跟输入法相关)
2.4 MediaRouteButton(先不研究)
2.5 ProgressBar
3.2.5.0 AbsSeekBar (抽象类)
3.2.5.0.1 RatingBar 评分条(就是几颗星那个条)
3.2.5.0.2 SeekBar拖动条
2.6 Space(先不研究)
2.7 SurfaceView (android 2D游戏画布)
3.2.7.1 GLSurfaceView (android 3D游戏画布,比SurfaceView效率高很多,是因为有GPU加速,这个也导致适配的局限性,很多手机设备没有GPU加速
)
4.3.2.7.1.0 NavGLView (先不研究)
3.2.7.2 VideoView (这个就是用来播放视频的一个view控件)
3.2.7.3 RSSurfaceView (先不研究)
2.8 TextView
3.2.8.1 Button
4.3.2.8.1.0 CompoundButton
(抽象类)
(
一个带有选中
/
未选中状态的
按钮。当按钮按下或点中时自动改变状态。
)
5.
4.3.2.8.1.0.1 CheckBox (复选框)
5.
4.3.2.8.1.0.2 RadioButton(单选按钮,要配合RadioGroup使用(继承至LinearLayout))
5.
4.3.2.8.1.0.3 Switch (开关按钮)
5.
4.3.2.8.1.0.4 ToggleButton(切换按钮,跟Switch类似)
3.2.8.2 CheckedTextView (类似 左边一个TextView 右边一个ToggleButton 封装起来的一个控件)
3.2.8.3 Chronometer (一个计时器)
3.2.8.4 DigitalClock (数字时钟,和模拟时钟对应AnalogClock)
3.2.8.5 EditText
4.3.2.8.5.1 AutoCompleteTextView(你输入关键字,有一些提示可以选择的选项)
5.
4.3.2.8.5.1.0
MultiAutoCompleteTextView(支持多次匹配,中间用分割符分开)
4.3.2.8.5.2 ExtractEditText (暂不研究)
3.2.8.6 TextClock 这个是一个时钟,取代原来的DigitalClock (4.2 API 17)
2.9 TextureView (类似于SurfaceView的一个View)
2.10 ViewGroup
3.2.10.1 AbsoluteLayout (绝对布局)
4.3.2.10.1.0 WebView
3.2.10.2 AdapterView
4.3.2.10.2.1 AbsListView
5.
4.3.2.10.2.1.1 GridView
5.
4.3.2.10.2.1.2 ListView
6.
5.
4.3.2.10.2.1.2.0
ExpandableListView
4.3.2.10.2.2 AbsSpinner
5.
4.3.2.10.2.2.1 Gallery
5.
4.3.2.10.2.2.2
Spinner
4.3.2.10.2.3 AdapterViewAnimator
5.
4.3.2.10.2.3.1
AdapterViewFlipper
5.
4.3.2.10.2.3.2
StackView
3.2.10.3 DrawerLayout
3.2.10.4
FragmentBreadCrumbs
3.2.10.5
FrameLayout
4.
3.2.10.5.1
AppWidgetHostView
4.
3.2.10.5.2
CalendarView
4.
3.2.10.5.3
DatePicker
4.
3.2.10.5.4
GestureOverlayView
4.
3.2.10.5.5
HorizontalScrollView
4.
3.2.10.5.6
MediaController
4.
3.2.10.5.7
NoSaveStateFrameLayout
4.
3.2.10.5.8
ScrollView
4.
3.2.10.5.9
TabHost
5.
4.
3.2.10.5.9.0
FragmentTabHost
4.
3.2.10.5.10
TimePicker
4.
3.2.10.5.11
ViewAnimator
5.
4.
3.2.10.5.11.1
ViewFlipper
5.
4.
3.2.10.5.11.2
ViewSwitcher
6.
5.
4.
3.2.10.5.11.2.1
ImageSwitcher
6.
5.
4.
3.2.10.5.11.2.2
TextSwitcher
3.2.10.6
GridLayout
3.2.10.7
LinearLayout
4.
3.2.10.7.1
NumberPicker
4.
3.2.10.7.2
RadioGroup
4.
3.2.10.7.3
SearchView
5.
4.
3.2.10.7.3.0
MySearchView (V4)
4.
3.2.10.7.4
TableLayout
4.
3.2.10.7.5
TableRow
4.
3.2.10.7.6
TabWidget
4.
3.2.10.7.7
ZoomControls
3.2.10.8
PagerTitleStrip
(V4)
4.
3.2.10.8.0
PagerTabStrip
(V4)
3.2.10.9
RelativeLayout
4.
3.2.10.9.1
DialerFilter
4.
3.2.10.9.2
TwoLineListItem
3.2.10.10
SlidingDrawer
3.2.10.11
ViewPager
(V4)
2.11 ViewStub (这个在view外边嵌套一层,可以提高性能,只是在可见的时候inflate布局,但是只能inflate一次,后会被置空)