到今天为止,修改了一个多月的android图库源码结束了!修改的具体内容就是将图库中原有的ActionBar干掉,然后自定义ActionBar。为了达到效果,自定义ActionBar的所有事件还必须与原有的ActionBar上的点击事件绑定。为此,必须要分析图库的整体架构、各个界面之间的转化关系,以及大部分类的作用。
修改后的效果图如下:
首先,不得不说,图库源码真的很强大,光本地的java代码就有500多个类,还有很多JNI代码。能从中学到很多的东西。
一、界面之间的转换
主要界面就三个:一个相册集的显示界面、一个相册的显示界面、一个图片或视频的显示界面。转换图如下(此图可在com.android.gallery3d.app.AlbumPage.java中找到):
1、相册集对应类:AlbumSetPage.java。
2、相册对应类:AlbumPage.java。
3、图片对应类:PhotoPage.java。
4、所有ActionBar由类GalleryActionBar.java管理。
5、所有菜单事件由MenuExecutor.java管理。
6、图片修剪类:FilterShowActivity.java。
7、视频修剪类:TrimVideo.java。
二、事件分析
主要事件就是图片、视频的显示以及ActionBar上的控件事件。
利用hierarchyviewer工具,同时打断点,DDMS调试,很容易找到各个事件的源码。此处就不分析了。有兴趣的可以自己去调试。