代码如下 :
创建一个纹理对象 
private void loadTexture(GL10 gl) {
        InputStream bitmapStream = null;
        Bitmap bitmap = null;
        try {
            // 打开图片资源流
            bitmapStream = this.getResources().openRawResource(
                    R.drawable.ic_launcher);
            // 解码图片生成 Bitmap 实例
            bitmap = BitmapFactory.decodeStream(bitmapStream);
     
            // 生成一个纹理对象,并将其ID保存到成员变量 texture 中
            int[] textures = new int[1];
            gl.glGenTextures(1, textures, 0);
            texture = textures[0];
     
            // 将生成的空纹理绑定到当前2D纹理通道
            gl.glBindTexture(GL10.GL_TEXTURE_2D, texture);
     
            // 设置2D纹理通道当前绑定的纹理的属性
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
                    GL10.GL_NEAREST);
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
                    GL10.GL_LINEAR);
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,
                    GL10.GL_REPEAT);
            gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,
                    GL10.GL_REPEAT);
     
            // 将bitmap应用到2D纹理通道当前绑定的纹理中
            GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
     
        } finally {
            if (bitmap != null)
                bitmap.recycle();
     
            if (bitmapStream != null) {
                try {
                    bitmapStream.close();
                } catch (IOException e) {
     
                }
            }
        }
    }public void draw(GL10 gl,int texture) {
    
        gl.glVertexPointer(3, GL10.GL_FLOAT, 0, fan_top);
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 
        gl.glNormalPointer(GL10.GL_FLOAT, 0, fan_top);
        gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
        gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, slices + 2);
       
        gl.glVertexPointer(3, GL10.GL_FLOAT, 0, strip);
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 
        gl.glNormalPointer(GL10.GL_FLOAT, 0, strip);
        gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
        gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, (slices + 1) * 2 * stacks);
        
        gl.glVertexPointer(3, GL10.GL_FLOAT, 0, fan_bottom);
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
 
        gl.glNormalPointer(GL10.GL_FLOAT, 0, fan_bottom);
        gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
        gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, slices + 2);
        
        // 开启纹理
gl.glEnable(GL10.GL_TEXTURE_2D);
// 允许使用纹理ST坐标缓冲
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
// 为画笔指定纹理ST坐标缓冲
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, fan_bottom);
     
    }
但这样出来的效果不对,
效果图如下: