Android中Activity Window View ViewGroup之间的关系

Activity:是Android四大组件之一,用于展示一个与用户交互的界面

----展示界面

----与用户交互

Activity相当于控制器,负责调用业务类的方法。简单的业务可以直接在Activity中处理。

Activity通过内置是Window对象的setContentView(资源位置.资源类型.资源)方法来展示界面。

用户通过View操作界面。

与用户交互时,通过View来捕获事件,再通过WindowManagerService传递消息(当前操作的控件,事件的类型)。Android框架再回调相应的Activity方法,实现与用户的交互。

Window:是Android中的窗口,表示顶级窗口,也就是主窗口,每一个主窗口,都有一个view,称之为DecorView(装饰视图),它是主窗口的顶级View(DecorView必须是一个布局容器,因为它要容纳其他的View)。当Activity调用setContentView()时,实际上就是调用

Window对象的setContentView()方法,执行该方法,把用户定义的View添加到DecorView中,最终完成对View的展示。

View:视图,是用户接口组件的基本构建块,它在屏幕中占用一个矩形区域,它是所   有UI控件的基类,如一个按钮或文本框。View负责图形界面渲染及事件处理

Android已经为我们提供了一系列的标准UI控件供我们直接使用,同时,我们也可以通过继承于View或View的子类,来实现我们自定义的UI控件

ViewGroup:Android中的视图组。包含多个View,也可以包含ViewGroup。

ViewGroup是一个特殊的View,能够容纳其它的View(子控件),它是布局和视图容器的基类

* ViewGroup.LayoutParams 布局参数类属性:

android:layout_width 相对于父控件的宽度 (wrap_content, match_parent,fill_parent)

android:layout_height 相对于父控件高度 (wrap_content,match_parent,fill_parent)

* ViewGroup常用的方法

addView(): 向视图组添加View

removeView():从视图组移去View

getChildCount:获得视图组子控件的数量

getChildAt()  : 获得具体某个子控件

在Android中ViewGroup是View的子类,布局管理器是ViewGroup的子类。

时间: 2024-10-11 22:01:02

Android中Activity Window View ViewGroup之间的关系的相关文章

android中activity,window,view之间的关系

activity:控制单元 window:承载模型 view:显示视图 几个小tip: 1.一个 Activity 构造的时候一定会构造一个 Window(PhoneWindow),并且只有一个 2.每个window有一个 ViewRoot(是一个View或ViewGroup) 3.通过window的addview方法把元素添加到window上. 4.可以通过 LayoutInflater 的 inflater 方法,可以把一个布局文件转换成view对象 5.界面上的点击等操作是由 Window

Android 中Activity,Window和View之间的关系

转自:http://hi.baidu.com/xiaofanqing/blog/item/8261ac114ab14f64cb80c435.html 我这里根据我个人的理解来讲讲我个人对这3个概念的理解.当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分. 但在用户级别,程序员可能根愿意理解成为一个界面的载体.但仅仅是个载体,它本身并不负责任何绘制.Activity的内部实现,实际上是聚了一个 Window对象.Window是一个抽象类,它的具体是在an

Android进阶笔记08:Android 中Activity、Window和View之间的关系

1. Android 中Activity.Window和View之间的关系(比喻): Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) LayoutInflater像剪刀,Xml配置像窗花图纸.  2. 详解:       Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent, onTouchEvent等. 并维护应用程序的生命周期.Activity本身是个庞大的载体,

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

Android中Activity启动模式详解

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> Activity的四种启动模式:

android中activity.this跟getApplicationContext的区别

转载: http://www.myexception.cn/android/1968332.html android中activity.this和getApplicationContext的区别 在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究

Android中Activity切换时共享视图元素的切换动画(4.x兼容方案)

同时发布在我的博客 点此进入 开始 上一篇讲了使用 Google 的 AppCompat-v7 来实现 Activity 切换时实现共享视图元素的切换动画.这一篇介绍两个可以兼容 4.x 的两个第三方方案. 上一篇:Android中Activity切换时共享视图元素的切换动画(5.0以上) 方案一:PreLollipopTransition 首先在 build.gradle 配置文件添加这个库依赖 dependencies { compile 'com.kogitune:pre-lollipop

Android中Bitmap, Drawable, Byte,ID之间的转化

Android中Bitmap, Drawable, Byte,ID之间的转化 1.  Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); byte[] array= out.toByteArray(); 2. byte转化为bitmap Bitmap bitmap = BitmapFactory.

android中activity可以响应外部的action的例子(可以用这个来导入外部文件)

如果我们在文件浏览器中点击一个文件,然后点击它,会弹出一个列表给你选择 如果使自己的应用也出现在这个列表上,必须在menifest的这个activity下加入: <activity android:name="com.example.clickabletextview.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name