在我的应用程序的某些点,我需要改变多边形的纹理。更改线程中多边形纹理的问题....白色纹理
为此,我必须从assets文件夹中加载一个位图,然后将位图传递给我的多边形的“loadBitmap”方法,以更改纹理。
它工作正常,但我需要的代码进入一个线程,因为位图的加载时间它frozing我的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;
}
}
}
是我tryed它,那并不作品 – NullPointerException 2012-02-28 14:52:46