- 博客(11)
- 收藏
- 关注
原创 触摸消息的整体派发流程
先简单说明下在客户端中,消息的总体派发机制:在ViewRootImpl.java的handleMessage()是处理所有消息的地方,其中MSG_PROCESS_INPUT_EVENTS对应于按键消息,触摸消息,滚轮消息和摇杆消息。接收到这个消息后,调用doProcessInputEvents(),这个函数再调用deliverInputEvent()分发具体消息,其中触摸消息对应于delive
2013-11-29 15:38:02 1466
原创 GestureDetector应用实例
MotionEvent中定义了基本事件,View中定义了一些简单事件的处理接口,GestureDetector拓展了View中的事件接口,提供了一些复杂事件的接口。框架接口(API)的好处是框架已经帮我们定义好了为什么onDoubleClick表示双击事件,而我们只需要直接使用即可。下面通过实例说明如何使用GestureDetector类实现复杂事件。package com.sean.gest
2013-11-28 15:14:11 1112
原创 手势检测GestureDetector的实现原理
首先简单说明一下触摸屏事件的实现过程:触摸屏驱动检测到MotionEvent——>MotionEvent被
2013-11-28 14:04:07 2463
原创 Android4.2.2 Gallery2源码分析(11)——Gallery的层次结构图
总结前文的内容,画出Gallery的基本架构层次图如下:这里我省略了ActionBar等内容,只说主要界面。Activity主界面对应于GLRootView(继承自GLSurfaceView)。由于Gallery的Activity使用了ActivityState这一类来保存不同的页面对象,在Activity中根据需求加载不同的ActivityState对象。ActivityState中
2013-11-15 16:43:32 6548 3
原创 Android4.2.2 Gallery2源码分析(10)——Activity于View的结合
在以往Activity中,我们大部分时候都在编写View,最后只需要在Activity的onCreate()函数中调用setContentView(new MyView())即可把对应的视图粘贴到了Activity上。在Gallery中,ActivityState代替了Activity;GLView代替了View,那么这二者是如何结合到一起的呢?虽说ActivityState替代了Activi
2013-11-15 16:35:02 3433 3
原创 Android4.2.2 Gallery2源码分析(9)——三个界面的跳转
Gallery浏览图片除开编辑界面,主要有三个界面:即起始页,相册簿集合页面(AlbumSetPage);点击某个相册进入该相册的所有图片页面(AlbumPage)和再点击某张具体图片之后的图片浏览页面(PhotoPage)。我们从起始页面开始,点击某个相册:一个相册是一个SlotView对象,在onCreate()中初始化了SlotView。并且对SlotView进行了监听:
2013-11-15 14:44:59 3494 2
原创 Android4.2.2 Gallery2源码分析(8)——假装的Activity
两周的奋战,终于对Gallery的结构有了个大致的了解。Gallery是一个很好的Android系统知识的学习源码,不仅仅因为它设计到了多线程,布局优化,Opengl的结合等等内容。还有两点必须说明的地方,一个是前文提到国的GLView.java:Gallery没有用到任何android提供的View类,而是自己写了一个融合Opengl绘图的GLView,掌握它对于理解android的View架构
2013-11-15 13:54:28 2905 2
原创 Android4.2.2 Gallery2源码分析(6)——GLView.java
// GLView is a UI component. It can render to a GLCanvas and accept touch// events. A GLView may have zero or more child GLView and they form a tree// structure. The rendering and event handling wil
2013-11-06 14:03:12 3575 2
原创 Android4.2.2 Gallery2源码分析(7)——canvas的调用堆栈
protected void render(GLCanvas canvas) { Log.d("Lich", "-------", new Throwable());上面是GLView.java的render方法。以前在查看View类及其子类的源码时,有一个很疑惑的地方——绘图是只需要在onDraw(Canvas canvas)中实现即可,而画图时用到的这个Canvas对象
2013-11-06 12:58:04 3052
原创 Android图形图画学习(11)——颜色相关
Android提供了一个颜色类Color.java提供各种不同的颜色,本节就从Color.java开始探讨颜色在代码中是如何表示的。Android中使用的是ARGB色彩模式,用于32位位图存储结构。即用32位表示一个像素(总共能表示的色彩数目为2的32次方):其中四个基本元素A,R,G,B各有8位,即各自大小为(0-255),根据各个基本元素的大小搭配组成不同颜色和透明度的色彩。这种表示在Bi
2013-11-05 20:43:42 1448
原创 Android图形图画学习(10)——AlphaBitmap
private static class SampleView extends View { private Bitmap mBitmap; private Bitmap mBitmap2; private Bitmap mBitmap3; private Shader mShader; private static
2013-11-05 19:41:06 1507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人