最近迫于生存压力,不得不给人兼职打工。故在博文中加了个求点击的链接。麻烦有时间的博友们帮我点击一下。没时间的不用勉强啊。不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺。嘻嘻。http://shop108130013.taobao.com。谢谢捧场。干脆第一个回报大家的就是这个星期开始继续这篇博文吧,实在是迫于生计,无所不用其极。请谅解。今天是2013-12-31。
最近开始做一个和图库有关的项目。那个工程不能通过调用Gallery2来实现,而是需要通过写一个小型的图库程序来实现。所以,从今天开始,需要全面弄清Gallery2的处理流程。这样才能比较好的完成任务。就从今天开始分析下Gallery2的结构吧。一边摸索一边写吧。
数据处理永远是图库的重中之重。com.android.gallery3d.data包下详细设计了data的数据结构。大体看上去有local本地图片处,download下载,decode解码,以及对应数据的cluster和mediaset的数据集合。
如果理清数据处理,只有从界面的每一步处理,才能弄清哪一步,用到了什么数据。所以,我还是从ui开始分析吧。下班后回家详细写写今天的ui流程分析。
ui部分共有71个类,其中abstract class 有4个,interface有7个。
4个抽象类分别如下:
DisplayItem.java :提供了setBox,render两个主要方法。用来设置显示item的属性。
AbstractDisplayItem.java :提供了item更新image,回收,获取标识等方法
(扩展了DisplayItem.java)
SelectionDrawer.java :选择区域以及重画抽象类
IconDrawer.java :图标重画抽象类,定义了选中,按下,获取图标位置等方法
(扩展了SelectionDrawer.java)
7个interface如下:
Config.java :提供设置窗体信息等方法
GLCanvas.java :提供使用OpenGL画图的
GLRoot.java :提供view的root节点对应方法的接口
OnSelectedListener.java :仅一个onSelected方法
PositionProvider.java :仅一个PositionProvider方法
Texture.java :提供一个矩形image供以GLCanvas为基础画图
UserInteractionListener :提供与用户操作相关的开始,结束等方法的接口
版权声明:本文为博主原创文章,未经博主允许不得转载。