在我的应用程序的某些方面(对于android),我需要改变多边形的纹理。
为此,我必须从assets文件夹加载一个位图,然后我将位图传递给我的多边形的“loadBitmap”方法,该方法会改变纹理。
它运行正常,但我需要将代码移动到一个线程中,因为位图的加载时间在从资源文件夹加载位图时冻结了我的opengl多边形。
因为我实现了一个调用它来改变纹理的线程,但是当我使用线程时我的纹理是空的(白色),这是错误的,但是如果我不使用线程它就有效,这是我的线程代码:
public class addNextPage extends Thread
{
GL10 gl;
public addNextPage(GL10 gl) {
super();
this.gl = gl;
}
public void run()
{
super.run();
Bitmap bm=loadImage(pages.get(0));
auxSquare.loadBitmap(context, gl, bm);
squares.set(3,auxSquare);
currentPage+=1;
//vuelvo a recolocar los squares
int posCont=-2; //el primer polígono está a la izquierda, no se ve.
for (int i=0;i<squares.size();i++){
if (squares.get(i)!=null)
squares.get(i).setPosition(posCont,0);
posCont+=2;
}
}
}