編輯:關於Android編程
根據書上教程運行代碼報錯,2.2的黑屏無效果,4.1的閃退。後研究發現,問題出在在一個物體同時啟用了顏色數組和紋理,注釋掉
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);運行即可。
核心代碼如下
package com.xieyuan.test; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import java.nio.IntBuffer; import java.util.Random; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.content.Intent; import android.opengl.GLSurfaceView.Renderer; import android.opengl.GLUtils; import android.view.KeyEvent; import android.view.MotionEvent; public class GLRender implements Renderer{ private final static int ONE=0x10000; //星星總數 private final static int NUM=50; //存放星星的數組 private Star[] stars=new Star[NUM]; //閃爍的星星 boolean twinkle=true; //離觀察者的距離 float ZOOM=-10f; //星星的傾角 float tilt=90f; //閃爍星星的自轉 float spin; private boolean key; Random random=new Random(); //紋理ID private int texture; IntBuffer coord=GLNioUtil.IntBufferUtil(new int[]{ 0,0,ONE,0,ONE,ONE,0,ONE }); IntBuffer vertexs=GLNioUtil.IntBufferUtil(new int[]{ -ONE-ONE,0, ONE,-ONE,0, ONE,ONE,0, -ONE,ONE,0 }); ByteBuffer indices=GLNioUtil.ByteBufferUtil(new byte[]{ 1,0,2,3 }); @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { //啟用陰影平滑 gl.glShadeModel(GL10.GL_SMOOTH); //清除屏幕為黑色背景 gl.glClearColor(0f, 0f, 0f, 0f); //透視修正 gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); //創建紋理 IntBuffer intBuffer=IntBuffer.allocate(1); gl.glGenTextures(1, intBuffer); texture=intBuffer.get(); gl.glBindTexture(GL10.GL_TEXTURE_2D, texture); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, GLImage.mBitmap[3], 0); //啟用紋理映射 gl.glEnable(GL10.GL_TEXTURE_2D); gl.glShadeModel(GL10.GL_SMOOTH); gl.glClearColor(0f, 0f, 0f, 0.5f); gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); //設置混色函數 gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE); //啟用混色 gl.glEnable(GL10.GL_BLEND); for(int i=0;i
效果:
在上一篇文章講了Android的Toast拓展,在原生Toast基礎上對顯示時長和顯示動畫做了二次封裝,強化了Toast的部分功能。也分析了對於二次封裝的ExToast設
百度視頻播放器是百度公司推出的一款為Android用戶精心優化的免費視頻應用,集視頻搜索、視頻推薦、離線觀看、劇集提醒等等眾多創新優秀功能於一身。它不僅僅是
Activity在inflate layout時,通過DataBindingUtil來生成綁定,從代碼看,是遍歷contentView得到View數組對象,然後通過數據綁
1. 產品概述 友盟社會化組件,可以讓移動應用快速具備社會化分享、登錄、評論、喜歡等功能,並提供實時、全面的社會化數據統計分析服務。 指南將會手把手教你使用社