Gallery图库源码解析系列
http://blog.youkuaiyun.com/lb377463323/article/details/69523891
07-19 06:38:05.854 8070 8070 V StateManager: switchState com.android.gallery3d.app.AlbumSetPage@f36cd68, class com.android.gallery3d.app.TimeLinePage
07-19 06:38:07.762 8070 8070 D GalleryActivity: startAlbumPage AlbumSetPage.KEY_MEDIA_PATH=: /combo/{/local/all,/picasa/all}
07-19 06:38:07.762 8070 8070 D GalleryActivity: getStateManager().getStateCount() =: 1
07-19 06:38:07.762 8070 8070 V StateManager: switchState com.android.gallery3d.app.TimeLinePage@fe8f1ba, class com.android.gallery3d.app.AlbumSetPage
07-19 06:38:07.964 8070 8070 D AlbumSetPage: ninitializeData mediaPath: /combo/{/local/all,/picasa/all}
packages\apps\SnapdragonGallery\src\com\android\gallery3d\app\GalleryActivity.java
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.gallery_main);
initView();
mSavedInstanceState = savedInstanceState;
if (isPermissionGranted()) {
init();
}
}
public void initView() {
mDrawerListView = (ListView) findViewById(R.id.navList);
mNavigationAdapter = new NavigationDrawerListAdapter(this);
mDrawerListView.setAdapter(mNavigationAdapter);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setActionBar(mToolbar);
mDrawerListView
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
getGLRoot().lockRenderThread();
showScreen(position);
mNavigationAdapter.setClickPosition(position);
mDrawerListView.invalidateViews();
mDrawerLayout.closeDrawer(Gravity.START);
getGLRoot().unlockRenderThread();
}
});
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
public void showScreen(int position) {
if (position > 2) {
position = 1;
}
// Bundle data = new Bundle();
// int clusterType;
// String newPath;
String basePath = getDataManager().getTopSetPath(
DataManager.INCLUDE_ALL);
switch (position) {
case 0:
startTimelinePage(); //Timeline view
break;
case 1:
startAlbumPage(); // Albums View
break;
case 2:
startVideoPage(); // Videos view
break;
default:
break;
}
public void startAlbumPage() {
ActivityState state = getStateManager().getTopState();
String oldClass = state.getClass().getSimpleName();
String newClass = AlbumSetPage.class.getSimpleName();
if (!oldClass.equals(newClass)) {
getStateManager().switchState(getStateManager().getTopState(),
AlbumSetPage.class, data);
}
}
mVersionCheckDialog = PicasaSource.getVersionCheckDialog(this);
if (mVersionCheckDialog != null) {
mVersionCheckDialog.setOnCancelListener(this);
}
}
gallery 各个tap界面都不是通过activity显示界面,而是opengl渲染glsurfaceview,例如直接在glrootview的slotview(相册)渲染画面