android4.0 的图库Gallery2代码分析(四) 之相册的数据处理以及显示

最近迫于生存压力,不得不给人兼职打工。故在博文中加了个求点击的链接。麻烦有时间的博友们帮我点击一下。没时间的不用勉强啊。不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺。嘻嘻。http://shop108130013.taobao.com。谢谢捧场。以后就每周写篇原创的技术博客回报大家,实在是迫于生计,无所不用其极。请谅解。

相册的数据处理以及显示

相册的处理都包含在AlbumSetPage中。要明白相册的形成过程,一定要清楚AlbumSetPage的形成过程。

AlbumSetPage的形成过程如下:

在图库GalleryAppImpl的应用androidmanifest中定义了名为Gallery的主Activity(com.android.gallery3d.app.Gallery)

当图库启动时,启动Gallery。Gallery的启动做了两件事,初始化其GalleryActionBar和根据状态器选择要显示的内容。

第一次进入图库时,图库会显示相册,即启动AlbumSetPage。通过startDefaultPage() 方法中的getStateManager().startState(AlbumSetPage.class, data);这步操作,开始启动相册的显示。

在Gallery.java启动AlbumSetPage时,不能忽略的是它放入启动事件的数据:

data.putString(AlbumSetPage.KEY_MEDIA_PATH,getDataManager().getTopSetPath(DataManager.INCLUDE_ALL));

有了数据和启动的AlbumSetPage类,状态机自然可以通过startState来启动相册了。(StateManager我称之为状态机,是图库设计的一大特色,这个下接专门分析一下,这里只是以其执行结果来看相册的显示)

未完待续。。。

时间: 2024-08-02 21:18:24

android4.0 的图库Gallery2代码分析(四) 之相册的数据处理以及显示的相关文章

android4.0 的图库Gallery2代码分析(三) 之Applition的初始化准备

Applition的初始化准备 图库的一切动作都明显地起源于Application.这是区别与其他那种感觉不到Application存在,仅仅感觉到Activity存在的简单应用的一个特点. 图库的application就是GalleryAppImpl.java. 可以说GalleryAppImpl是图库的基石.它扩展Application这是必定的,代表他就是一个Application,同时它额外实现了GalleryApp的interface. GalleryApp中很清楚地表明了自己的作为图

android4.0 的图库Gallery2代码分析(二)

最近迫于生存压力,不得不给人兼职打工.故在博文中加了个求点击的链接.麻烦有时间的博友们帮我点击一下.没时间的不用勉强啊.不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺.嘻嘻.http://shop108130013.taobao.com.谢谢捧场.干脆第一个回报大家的就是这个星期开始继续这篇博文吧,实在是迫于生计,无所不用其极.请谅解.今天是2013-12-31. 接下来开始摸索相册显示的流程吧. 一边摸索一边写,我想其间不乏错误的理解吧.摸索先. 相册显示相关有两个大的类别:

Android4.0图库Gallery2代码分析(二) 数据管理和数据加载

Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 一 图库数据管理 Gallery2的数据管理 DataManager(职责:管理数据源)- MediaSource(职责:管理数据集) - MediaSet(职责:管理数据项).DataManager中初始化所有的数据源(LocalSo

Android5.1图库Gallery2代码分析数据加载流程

图片数据加载流程. Gallery---->GalleryActivity------>AlbumSetPage------->AlbumPage--------->PhotoPage 相册集                        照片集                 某张图片 1,AlbumSetPage.java private void initializeData(Bundle data) { String mediaPath = data.getString(A

Android4.0设置界面修改总结(四)

之前有跟大家分享设置Tab风格和Item圆角的实现,希望能给有需要的朋友一点点帮助,今天再和大家分享一下用ViewPager实现设置分页,小米和OPPO就是这样的设置,先来看看效果图:   为了帮助大家更清晰的理解,我单独拿出一个小例子,有需要的朋友可以下载下来看看: http://git.oschina.net/way/SettingTab/tree/master 其实要实现这样的风格并不难,只要能比较深入的理解PreferenceActivity.java就可以了.我们都知道Settings

(转)基于FFPMEG2.0版本的ffplay代码分析

ref:http://zzhhui.blog.sohu.com/304810230.html 背景说明 FFmpeg是一个开源,免费,跨平台的视频和音频流方案,它提供了一套完整的录制.转换以及流化音视频的解决方案.而ffplay是有ffmpeg官方提供的一个基于ffmpeg的简单播放器.学习ffplay对于播放器流程.ffmpeg的调用等等是一个非常好的例子.本文就是对ffplay的一个基本的流程剖析,很多细节内容还需要继续钻研. 注:本文师基于ffmpeg-2.0版本进行分析,具体代码行还请对

Android4.0 Launcher拖拽原理分析1

在Android4.0源码自带的Launcher中,拖拽是由DragController进行控制的. 1.基本流程: 相应的View在检测到用户操作后进行判断,若可以触发拖拽,则设置自身的相应状态,然后将待拖拽对象的Bitmap对象.当前位置.拖拽源.待拖拽对象等信息传给DragController的startDrag方法启动拖拽. 接下来,DragLayer的onInterceptTouchEvent拦截触屏事件,将其转到DragController的onTouchEvent方法. 在Drag

修改android4.4图库系列四(五)——android4.4.2图库整体架构分析

到今天为止,修改了一个多月的android图库源码结束了!修改的具体内容就是将图库中原有的ActionBar干掉,然后自定义ActionBar.为了达到效果,自定义ActionBar的所有事件还必须与原有的ActionBar上的点击事件绑定.为此,必须要分析图库的整体架构.各个界面之间的转化关系,以及大部分类的作用. 修改后的效果图如下: 首先,不得不说,图库源码真的很强大,光本地的java代码就有500多个类,还有很多JNI代码.能从中学到很多的东西. 一.界面之间的转换 主要界面就三个:一个

Android 7.0 Gallery图库源码分析1 - 初识Gallery源码

分析一个项目的源代码时,第一件事就是查看清单文件,找到程序入口,我们从Gallery2源码的清单文件中可以看到GalleryActivity是此应用的启动Activity. 1 <activity android:name="com.android.gallery3d.app.GalleryActivity" android:label="@string/app_name" 2 android:configChanges="keyboardHidde