3.1.3 AlbumSetPage
负责处理刚进入相册显示的所有相册界面。
其类图如下。
相关类说明
1)SelectionManager.SelectionListener
负责对选择状态时的侦听。
2)SelectionManager
负责对选择状态的处理。
其类图如下。
mSourceMediaSet主要用于对相册数据进行管理,其具体作用待分析。MediaSet类请参见Mediaset。
mClickedSet主要用于对选中的媒体文件的路径进行管理。
mListener就是侦听者。
mDataManager主要用于管理相册数据。
mPressedPath存放当前点中的媒体数据的路径。
选择分为以下几种状态。
SelectionManager.ENTER_SELECTION_MODE
SelectionManager.LEAVE_SELECTION_MODE
SelectionManager.SELECT_ALL_MODE
进入退出全选,对应每种状态都要相应处理。
3)GalleryActionBar.ClusterRunner
主要实现doCluster函数。该函数用于实现按模式排序时的activity跳转。
通过GalleryActionBar实现排序,原理就是打包bundle值,重新开启一个activity,新的activity接受到这个bundle值。
4)EyePosition.EyePositionListener
人眼定位的侦听者,主要实现onEyePositionChanged,用于对人眼位置改变的侦听。未研究。
5)EyePosition
处理人眼定位的类。未研究。
6)MediaSet.SyncListener
处理异步加载mediaset的结果侦听者。实现onSyncDone()函数。
该函数处理异步加载的结果。
7)StaticBackground
管理背景图图片。
8)AlbumSetView
负责绘制所有相册的view。
如下是类图。
8.1)SLotView
将GLView再封装。未研究。
8.2)GLView
关于GLView类介绍的注释如下。通过其可以知道GLView大致是用来将内容渲染到GLCanvas画布上的,同时处理一些触摸事件。未研究。
// 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 will pass through the tree
// structure.
//
// A GLView tree should be attached to a GLRoot before event dispatching and
// rendering happens. GLView asks GLRoot to re-render or re-layout the
// GLView hierarchy using requestRender() and requestLayoutContentPane().
//
// The render() method is called in a separate thread. Before calling
// dispatchTouchEvent() and layout(), GLRoot acquires a lock to avoid the
// rendering thread running at the same time. If there are other entry points
// from main thread (like a Handler) in your GLView, you need to call
// lockRendering() if the rendering thread should not run at the same time.
8.3)AlbumSetSlidingWindow
负责滑动显示图片相关。
9)AlbumSetDataAdapter
数据适配器。
10)ActionModeHandler
对操作栏上的操作进行管理。
目前有如下操作。
private static final int SUPPORT_MULTIPLE_MASK = MediaObject.SUPPORT_DELETE
| MediaObject.SUPPORT_ROTATE | MediaObject.SUPPORT_SHARE
| MediaObject.SUPPORT_CACHE | MediaObject.SUPPORT_IMPORT;
3.1.4 AlbumPage
其基本结构与albumsetpage差不多,里面的view变成albumview。