Android Gallery3D源码分析(一)
来源:互联网 发布:程序员背包推荐 编辑:程序博客网 时间:2024/06/05 20:11
Gallery3D概述
Gallery3D的界面生成和普通的应用程序不一样。普通程序一般一个界面就是一个activity,布局用xml或代码都可以实现,界面切换是activity的切换方式;而Gallery3D没有用android的UI系统,而是用opengl画出来的,即界面是在同一个activity的,如主界面,缩略图界面,单张图片查看界面,标记界面等都属于同一个activity。
主要线程介绍
在应用程序中有三个非常重要的线程存在:主线程(Gallery随activity的生命周期启动销毁)、MediaFeed初始化线程(进入程序时只运行一次,用于加载相册初始信息)、MediaFeed监听线程(一直在跑,监听相册和相片的变更),其中MediaFeed初始化线程的工作是:调用MediaFeed 的loadMediaSets加载相册,MediaFeed监听线程MediaFeed.run()的工作是:根据“内容变化监听器“返回的媒体变动消息 (增删改),持续不断的更新 MediaFeed中的相册和相片变量。
控件
Gallery3D中定义了很多控件它们都继承自com.cooliris.media.Layer,分别代表不同场景和界面下的UI元素,具体有如下控件。
java代码:
渲染流程
Gallery3D的渲染从 RenderView 开始。RenderView 从 GLSurfaceView 继承而来,采用了通知型绘制模式,即通过调用requestRender 通知 RenderView 重绘屏幕。RenderView 将所有需要绘制的对象都保存一个 Lists中,Lists 包含了5个ArrayList,其定义如下所示:
java代码:
RenderView 的onDrawFrame接口完成每一帧的绘制操作,绘制时遍历 lists 里每个 list 的每一个成员并调用其 renderXXX 函数。主要代码如下所示:
java代码:
Gallery3D的界面生成和普通的应用程序不一样。普通程序一般一个界面就是一个activity,布局用xml或代码都可以实现,界面切换是activity的切换方式;而Gallery3D没有用android的UI系统,而是用opengl画出来的,即界面是在同一个activity的,如主界面,缩略图界面,单张图片查看界面,标记界面等都属于同一个activity。
主要线程介绍
在应用程序中有三个非常重要的线程存在:主线程(Gallery随activity的生命周期启动销毁)、MediaFeed初始化线程(进入程序时只运行一次,用于加载相册初始信息)、MediaFeed监听线程(一直在跑,监听相册和相片的变更),其中MediaFeed初始化线程的工作是:调用MediaFeed 的loadMediaSets加载相册,MediaFeed监听线程MediaFeed.run()的工作是:根据“内容变化监听器“返回的媒体变动消息 (增删改),持续不断的更新 MediaFeed中的相册和相片变量。
控件
Gallery3D中定义了很多控件它们都继承自com.cooliris.media.Layer,分别代表不同场景和界面下的UI元素,具体有如下控件。
java代码:
渲染流程
Gallery3D的渲染从 RenderView 开始。RenderView 从 GLSurfaceView 继承而来,采用了通知型绘制模式,即通过调用requestRender 通知 RenderView 重绘屏幕。RenderView 将所有需要绘制的对象都保存一个 Lists中,Lists 包含了5个ArrayList,其定义如下所示:
java代码:
RenderView 的onDrawFrame接口完成每一帧的绘制操作,绘制时遍历 lists 里每个 list 的每一个成员并调用其 renderXXX 函数。主要代码如下所示:
java代码:
- Android Gallery3D源码分析(一)
- android gallery3d 源码分析(一)
- Android Gallery3D源码分析(一)
- Android Gallery3D源码分析(一)
- Android Gallery3D源码分析
- Android Gallery3D源码分析
- Android Gallery3D源码分析
- Android Gallery3D源码分析(二)
- android gallery3d 源码分析(二)
- Android Gallery3D源码分析(二)
- Gallery3D源码分析
- Gallery3D源码分析
- gallery3d的源码分析——入口
- gallery3d的源码分析-数据涞源2
- Gallery3D源码阅读笔记(一) RenderView.java
- Android控件开发之Gallery3D酷炫效果(带源码)
- gallery3d的源码分析——入口2
- Android源码分析--MediaServer源码分析(一)
- Hibernate中使用detachedCriteria.addOrder(Order.desc 错误 hibernate排序
- Flex整站开发Step by Step : 1、Preface
- scu 3998 photo shoot
- oracle database link 作用
- iis 中配置 域名登录 跳转页面
- Android Gallery3D源码分析(一)
- poj1716——Integer Intervals//差分约束系统
- Android Gallery3D源码分析(二)
- 过滤驱动容易让新手纠结的几个函数
- 镜像 主库备库问题
- 坑爹啊!我发誓以后不买新疆人的东西了!
- 从今天开始,我要经营自己在CSDN的博客了
- axis2+spring+Hibernate webservice 非aar方式
- poj1201——Intervals//差分约束系统