Android View研究

因为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游戏画布)
      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一次,后会被置空)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值