`
vssupermadman
  • 浏览: 22856 次
社区版块
存档分类
最新评论

Android界面View及ViewGroup

 
阅读更多



从上图,我们可以理出大致的显示过程如下:
【1】ActivityManagerService创建Activity线程,激活一个activity
【2】系统调用Instrumentation.newActivity创建一个activity
【3】Activity创建后,attach到一个新创建的phonewindow中。这样Activity获取一个唯一的WindowManager服务的实例
【4】Activity创建过程中使用setcontentView设置用用户UI,这些VIEW被加入到PhoneWindow的 ContentParent中。
【5】Activity线程继续执行,当执行到Activity.makeVisible是将根view DecoView加入到WindowManger中,WindowManger实全会为每个DecoView创建对应的ViewRoot
【6】每个ViewRoot拥有一个Surface,每个Surface将会调用底层库创建图形绘制的内存空间。这个底层库就是 SurfaceFlinger。SurfaceFlinger同时也负责将个View绘制的图形合到一块(按照Z轴)显示到用户屏幕。
【7】如果用户直接在Canvas上绘制,实际上它直接操作Surface。但对每个View的变更,它是要通知到ViewRoot,然后 ViewRoot获取Canvas。如果绘制完成,surfaceFlinger得到通知,合并Surface成一个Surface到设备屏幕。
从上面的图形输出过程分析,我们可以知道真正显示图形的实际上跟Activity没有关系,完全由WindowManager来决定。 WindowManager是一个系统服务,因此可以直接调用这个服务来创建界面,并且更绝的是Dialog、Menu也是有WindowManager 来管理的。另外一个我们也可以看到,最底层都是Surface来,因此,常见开发游戏的人都推荐你使用SurfaceView来创建界面。
  • 大小: 48.7 KB
分享到:
评论
2 楼 woyaowenzi 2013-07-25  
两个问题:
1. DecoView写错了,是DecorView;
2. Activity.makeVisible将DecorView添加到WindowManger中:这个地方我在跟代码时,发现已经在wm.addView(decor, l);这句话时,被添加进去了。
太复杂了,晕头转向。
1 楼 woyaowenzi 2013-07-24  
这篇文章也不错。

相关推荐

    Android双向界面滑动ViewGroup源码包

    Android实现的ViewGroup双向滑动界面效果,这在当下的各种android客户端应用中使用广泛,操作也是比较顺手的一种方式,本滑动界面中设置右滑的菜单View、设置主界面View、并设置了菜单和内容边界,定义好这些为下...

    Android视图控件架构分析之View、ViewGroup

    在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点。在控件树中,以树的...

    重写ViewGroup实现双向滑动界面

    详细请看:http://blog.csdn.net/dawanganban/article/details/24007215

    实验2-Android-应用的界面开发(1).doc

    import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; public class ...

    Android 悬浮窗功能实现(微信语音通话悬浮窗效果实现)

    Android 界面绘制都是通过 WindowManager 服务来实现的,WindowManager 对象可通过获取 WINDOW_SERVICE 系统服务得到,并因为 WindowManager 继承于 ViewManager ,所以其拥有以下方法 addView(View view, ...

    基于Android技术的界面设计与研究

    详细介绍了google 发布的新一代智能手机平台Android 的基本架构, 通过对其应用程序构成框架的分析,...最后通过对视图和布局的介绍,给出一种使用Android 技术的界面设计实现方案,并通过数据绑定实现了用户事件映射。

    Android开发中获取View视图宽与高的常用方法小结

    本文实例讲述了Android开发中获取View视图宽与高的常用方法。分享给大家供大家参考,具体如下: 一、根据WindowManager管理器获得 1)这两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后...

    详解如何实现一个基本的Android用户界面

    Android用户界面 Android应用程序的基础功能单元就是Activity–android.app.Activity类中的一个...想要让你的Activity显示在屏幕上并且设计它的UI,你需要使用view和viewgroup–Android平台基础的用户界面表达单元。

    Android studio界面设计与资源PPT

    (1)理解Android屏幕元素的层次结构、View与ViewGroup (2)熟悉Android的布局对象和Android中创建UI界面的方式 (3)熟悉Android常用的UI控件及其基本属性 (4)熟悉Android尺寸的单位 (5)掌握TextView、...

    《Android群英传》完整扫描版

    2.2.2 Android Studio常用界面 21 2.2.3 导入Android Studio工程 23 2.3 ADB命令使用技巧 24 2.3.1 ADB基础 24 2.3.2 ADB常用命令 25 2.3.3 ADB命令来源 29 2.4 模拟器使用与配置 29 第3章 Android控件架构与自定义...

    android Listview模拟聊天界面

    本文实例为大家分享了android Listview模拟聊天界面的具体代码,供大家参考,具体内容如下...import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.wid

    安卓注册界面(大学安卓课程作业实例)

    实验目的:掌握Android常用View视图的基本属性和触发事件,掌握常用ViewGroup视图的使用和组合,了解各种专用View视图的基本属性和使用。 实验仪器:装有Eclipse+adt或者Android Studio的PC机。 实验内容: 1. ...

    Android 触摸事件监听(Activity层,ViewGroup层,View层)详细介绍

    Android不同层次的触摸事件监听  APP开发中,经常会遇到有关手势处理的操作,比如向右滑动返回上一个页面。关于触摸事件的处理,我们可以大概处理在不同的层次上。 Activity层:可以看做触摸事件获取的最顶层 ...

    Android移动应用开发实验指导书.docx

    配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse、ADT、Android SDK 实验主要技术基础 (1)Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而...

    android顶部滑动导航

    import android.view.ViewGroup.LayoutParams; import android.view.animation.LinearInterpolator; import android.view.animation.TranslateAnimation; import android.widget.HorizontalScrollView; import ...

    Android UI组件实例集合

    ViewFlow 相当于 Android UI 部件提供水平滚动的 ViewGroup,使用 Adapter 进行条目绑定。 8、Android 导航菜单 RibbonMenu 是 Android 上的一个导航菜单组件。就三个目标文件,菜单项直接在 XML 中定义,可添加...

    Android自定义ViewGroup实现流式布局

    本文实例为大家分享了Android自定义ViewGroup实现流式布局的具体代码,供大家参考,具体内容如下 1.概述 本篇给大家带来一个实例,FlowLayout,什么是FlowLayout,我们常在App 的搜索界面看到热门搜索词,就是...

    Android入门到精通源代码.

    第4章 Android人机界面和常用组件 4.1 用户人机界面元素分类 4.1.1 视图组件(View) 4.1.2 视图容器组件(ViewGroup) 4.1.3 布局组件(Layout) 4.1.4 布局参数(LayoutParams) 4.2 常用Widget组件 4.2.1 文本框...

    android开发入门与实战(下)

    第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及特色应用 4.3.1 开发应用的领域 4.3.2 AndroidMarket特色...

    Android自定义ViewGroup实现淘宝商品详情页

    最近公司在新版本上有一个需要,要在首页添加一个滑动效果,具体就是仿照X... 通过指定父view和子view的focus来切换滑动的处理界面—即通过view的requestDisallowInterceptTouchEvent方法来决定是哪一个ScrollView来处

Global site tag (gtag.js) - Google Analytics