android4.0 的图库Gallery2代码分析(一)
最近迫于生存压力,不得不给人兼职打工。故在博文中加了个求点击的链接。麻烦有时间的博友们帮我点击一下。没时间的不用勉强啊。不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺。嘻嘻。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 :提供与用户操作相关的开始,结束等方法的接口
版权声明:本文为博主原创文章,未经博主允许不得转载。
android4.0 的图库Gallery2代码分析(一)的更多相关文章
- android4.0 的图库Gallery2代码分析(四) 之相册的数据处理以及显示
最近迫于生存压力,不得不给人兼职打工.故在博文中加了个求点击的链接.麻烦有时间的博友们帮我点击一下.没时间的不用勉强啊.不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺.嘻嘻.http: ...
- android4.0 的图库Gallery2代码分析(三) 之Applition的初始化准备
Applition的初始化准备 图库的一切动作都明显地起源于Application.这是区别与其他那种感觉不到Application存在,仅仅感觉到Activity存在的简单应用的一个特点. 图库的a ...
- android4.0 的图库Gallery2代码分析(二)
最近迫于生存压力,不得不给人兼职打工.故在博文中加了个求点击的链接.麻烦有时间的博友们帮我点击一下.没时间的不用勉强啊.不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺.嘻嘻.http: ...
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...
- Android4.0图库Gallery2代码分析(一) 程序整体结构
Android4.0图库Gallery2代码分析(一) 程序整体结构 Gallery2的用例图分析:Gallery2主要功能是实现本地存储器.MTP存储器和网络存储器中媒体(图像和视频)的浏览.显示和 ...
- Android5.1图库Gallery2代码分析数据加载流程
图片数据加载流程. Gallery---->GalleryActivity------>AlbumSetPage------->AlbumPage--------->Photo ...
- Android 7.0 Gallery图库源码分析3 - 数据加载及显示流程
前面分析Gallery启动流程时,说了传给DataManager的data的key是AlbumSetPage.KEY_MEDIA_PATH,value值,是”/combo/{/local/all,/p ...
- Android 7.0 Gallery图库源码分析2 - 分析启动流程
前面一讲解了Gallery启动Activity以及界面如何绘制,现在开始讲解启动流程的代码逻辑. GalleryActivity的onCreate方法中调用initializeByIntent()方法 ...
- (转)基于FFPMEG2.0版本的ffplay代码分析
ref:http://zzhhui.blog.sohu.com/304810230.html 背景说明 FFmpeg是一个开源,免费,跨平台的视频和音频流方案,它提供了一套完整的录制.转换以及流化音视 ...
随机推荐
- EF中用Newtonsoft.Json引发的循环引用问题
描述: 1.双向关系表a->b b->aList 2.在查询a引用b以后 3.用Newtonsoft.Json 去tojsonstring 4.一个只有6条数据的json串 出现了一屏幕字 ...
- listview前几个item怎么不停加载
在加载前几个item的时候,listview有个Adapter,里面的getView方法会被调用好几遍.原因可能有两种: 1.listview在布局文件里高度写成了wrap_content <? ...
- 路由器wan口连接不上的问题
路由器:tp-link:系统:win8.1:网络类型:PPPoE 克隆“当前管理PC的MAC地址”后,无法连接,将网线直接连到电脑上可以连接,所以问题一定出在路由上,经过不断探索发现问题所在,通过命令 ...
- UIImageView 在切图规范的情况下不用设置frame
UIImageView本身是没有frame的,所以UIImageView不用设置frame,UIImageView的fram由它内部的图片决定,所以当要更改UIImageView的大小显示的时候,更改 ...
- mongostat
监控MongoDB有一下几种方法: 1)使用MongoDB软件包自带的工具,如mongostat,mongotop等.2)使用MongoDB数据库命令3)使用MongoDB公司提供的MMS监控服务 m ...
- 安卓常用 widget
验证码 public class SpinnerImg extends ImageView { /** * 完成选择后启动另外一个spinner */ private ItemListener ite ...
- Swift 学习笔记 (三) 之循环引用浅析
原创:转载请注明出处 110.自动引用计数实践 下面的例子展示了自动引用计数的工作机制.例子以一个简单的Person类开始,并定义了一个叫name的常量属性: class Person { l ...
- Swift 学习笔记 (一)
原创: 转载请注明出处 Extention try catch rxSwift internal public private var let as as? 强转 ? ! didSe ...
- Jmeter的优点是什么?除了轻量级,它和LoadRunner有什么本质区别
1.jmeter的架构和loadrunner原理一样,都是通过中间代理,监控和收集并发客户端发出的指令,把他们生成脚本,再发送到应用服务器,再监控服务器反馈结果的一个过程: 2.分布式中间代理功能在j ...
- Listview和checkbox多选
在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作.表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手.尤其当 ...