1

我正在用 Java 在 Android 上的 Open GLES 中设计一个游戏。

显然我使用了很多纹理,很快我就会耗尽内存。

我对 Android 和 Java 很陌生,但我认为解决这个问题的最简单方法是用位图销毁对象,我目前不需要,让垃圾收集器回收它们占用的内存,然后在我再次需要相应纹理的后期重新创建这些对象。

像这样的东西:

background = null;

然后当我需要背景对象中的纹理时:

background = new Background(context);

看起来很简单,除了上下文(我的班级背景需要它来运行,因为它通过 BitmapFactory 从它加载纹理)没有传递到onDrawFrame(GL10 gl)我的主游戏循环所在的函数和我需要的函数中!

如果我尝试在 GL10 gl 之后添加上下文作为第二个参数,我会收到一个错误 - 这似乎是不可能的。

有谁知道如何将上下文传递到 onDrawFrame,或者如何从内存中清除上下文对象然后再次恢复它们?

4

1 回答 1

0

您必须绘制到 aSurfaceView或 a GLSurfaceView...,这显然是 的一种View,因此具有 getContext() 方法。

于 2012-02-02T11:05:20.010 回答