`
vssupermadman
  • 浏览: 23145 次
社区版块
存档分类
最新评论
文章列表
onInterceptTouchEvent和onTouchEvent调用时序 onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,Android这么设计的想法也很好理解,由于ViewGroup会包含若干childView,因此需要能够统一监控各种touch事件的机会,因此纯粹的不能包含子view的控件是没有这个方法的,如LinearLayout就有,TextView就没有。 onInterceptTouchEvent()使用也很简单,如果在V ...
作者: Android开发网原创 时间: 2010-08-10   对于Android系统的自定义View可能大家都熟悉了,对于自定义View的属性添加,以及Android的Layout的命名空间问题,很多网友还不是很清楚,今天Android123一起再带大家温习一下   CwjView myView=new CwjView(context);   如果用于游戏或整个窗体的界面,我们可能直接在onCreate中setContentView(myView); 当然如果是控件,我们可能会需要从Layout的xml中声明,比如   <cn.com.android123.CwjView ...
从上图,我们可以理出大致的显示过程如下: 【1】ActivityManagerService创建Activity线程,激活一个activity 【2】系统调用Instrumentation.newActivity创建一个activity 【3】Activity创建后,attach到一个新创建的phonewindow中。这样Activity获取一个唯一的WindowManager服务的实例 【4】Activity创建过程中使用setcontentView设置用用户UI,这些VIEW被加入到PhoneWindow的 ContentParent中。 【5】Activity线程继续执行,当执行到A ...
(1)View:最基本的UI组件,表示屏幕上的一个矩形区域。 (2)Window: 表示一个窗口,不一定有屏幕那么大,可以很大也可以很小;                          它包含一个View tree和窗口的layout 参数。                          View tree的root View可以通过getDecorView得到。还可以设置Window的Content View。 (3)Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用                       ...
Android MediaPlayer的生命周期 MediaPlayer的状态转换图也表征了它的生命周期,搞清楚这个图可以帮助我们在使用MediaPlayer时考虑情况更周全,写出的代码也更具健壮性。 这张状态转换图清晰的描述了MediaPlayer的各个状态,也 ...
[size=medium]Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler),这样就实现了通过消息来驱动应用程序的执行,本文将详细分析Android应用程序的消息处理机制。         前面我们学习Android应用程序中的Activity启动(Android应用程序启动过程源代码分析和Android应用程序内部启动 Activity过程(startActivity)的源代码分析)、Service启动(Android系统在新进程中启动自定义服务过程(star ...
一、几个关键概念 1、MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。 创建一个线程的时候,并不会自动创建其MessageQueue。通常使用一个Looper对 ...
Global site tag (gtag.js) - Google Analytics