转载:http://blog.csdn.net/dongnan591172113/article/details/33090111

android视图继承关系

分类:android

入门级的基础知识,以前对View,VIewGroup,widget,layout等的关系搞不清楚,通过学习后,做了下总结,如下:

1.View,ViewGroup

>View:

}1、所有高级UI组件都继承View类而实现的}2、一个View在屏幕上占据一块矩形区域}3、 负责渲染}4、负责处理发生的事件}5、设置是否可见}6、设置是否可以获得焦点等2.ViewGroup:}1、一个ViewGroup对象是一Android.view.ViewGroup实例}2、View的容器}3、 负责对添加进ViewGroup的View进行布局}4、一个ViewGroup可以加入到另一个ViewGroup3.View ,ViewGroup的关系android视图继承关系_第1张图片

4.View,widgetView的继承关系

android视图继承关系_第2张图片

2.widget

}1、界面中展示的各个小组件}2、有独立的事件处理能力}3、所有Wiget组件都是继承View而来注:1.widget并不是实际存在的类,它是一个包,而VIew等就是实际存在的类,所以首字母大写。在引用时,通常:

import android.view.View;

import android.widget.TextView;

因为widget是包,所以首字母小写

2.在该包内放的是UI Elements,包括TextView,ListView,但是这些元素都继承自View或ViewGroup。如下图所示:

android视图继承关系_第3张图片

android视图继承关系_第4张图片

其中各种layout继承自ViewGroup

4 layout

对UI 组件进行布局

关于view及其子类的关系如下:

android视图继承关系_第5张图片



android视图继承关系_第6张图片

二、 View SurfaceView GLSurfaceView

View SurfaceView GLSurfaceView
功能 显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢 基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。 基于SurfaceView视图再次进行拓展的视图类,专用于3D游戏开发的视图;是SurfaceView的子类,openGL专用。
区别 必须在UI的主线程中更新画面,用于被动更新画面 UI线程和子线程中都可以。在一个新启动的线程中重新绘制画面,主动更新画面



更多相关文章

  1. Android名称、版本和API level的对应关系
  2. 第3.2.1节 android基本视图
  3. android平板上的GridView视图缓存优化
  4. 高级控件之网格视图(GridView)
  5. Android图像开源视图:SmartImageView
  6. android apilevel和android系统版本对应关系
  7. Android视图绘制流程完全解析,带你一步步深入了解View(二)

随机推荐

  1. 苹果Mac轻量级音频编辑器: Fission 助你实
  2. eNSP:hybrid接口配置实例
  3. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启
  4. DevOps和它的朋友们——聊聊其他“Ops”(
  5. Service Mesh对比:Istio与Linkerd
  6. BBED系列之编译安装(1)
  7. Git 工具和指令集合
  8. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显
  9. 删去k个数字后的最小值
  10. 为何SYSTEM用户可以将V$SESSION的查询权