4

我正在尝试为列表视图中的每个项目找到一种基于 opengl 的 3d 动画的方法。我知道从 ICS 开始,可以使用 TextureView 来渲染 opengl 场景。Romain Guy 在这个线程中的回答详细解释了如何做到这一点。

但是,如果 TextureView 是 ListView 的一部分,我无法弄清楚这将如何工作?(有没有其他方法可以在列表视图中执行 opengl 基础渲染?)

我能想到的方法有两种。

  1. 为列表视图中的每个纹理视图创建一个 opengl 上下文,该上下文将渲染到该纹理视图的表面。(拥有大量 gl 上下文似乎非常不雅,而且我认为限制取决于硬件)

  2. 创建一个 opengl 上下文并在多个表面共享它。并对不同的表面进行顺序绘图调用。(不知道如何做到这一点,listview 管理显示和隐藏的内容,这使事情进一步复杂化)

所以我的问题是......有没有办法在 ListView 中进行基于 opengl 的渲染?如果是这样怎么办?

4

1 回答 1

1

ListView 进行内部回收。因此,不会有太多的 View 对象:通常两个或三个以上同时可见。

于 2013-05-01T20:36:53.440 回答