編輯:關於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用戶精心優化的免費視頻應用,集視頻搜索、視頻推薦、離線觀看、劇集提醒等等眾多創新優秀功能於一身。它不僅僅是
Android的DataBinding原理介紹
Activity在inflate layout時,通過DataBindingUtil來生成綁定,從代碼看,是遍歷contentView得到View數組對象,然後通過數據綁
Android集成友盟社會化分享功能
1. 產品概述 友盟社會化組件,可以讓移動應用快速具備社會化分享、登錄、評論、喜歡等功能,並提供實時、全面的社會化數據統計分析服務。 指南將會手把手教你使用社