English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo di creazione di un'Activity basato su GLSurfaceView su Android con OpenGL

Questo articolo illustra un esempio di come creare un'Activity utilizzando GLSurfaceView basato su OpenGL in Android. Condividiamo questo con tutti voi per riferimento, come segue:

Android fornisce due classi di base per utilizzare l'API OpenGL ES per creare e manipolare grafici: GLSurfaceView e GLSurfaceView.Renderer. Pertanto, dobbiamo prima comprendere queste due classi.

1. GLSurfaceView:

Questa è una classe di vista, in cui puoi chiamare l'API OpenGL per disegnare grafici e manipolare oggetti, simile a SurfaceView. Possiamo creare un'istanza della classe GLSurfaceView e aggiungere il nostro renderer. Se dobbiamo implementare alcune operazioni di schermo tactico, dobbiamo estendere questa classe per implementare il listener di tocco.

2. GLSurfaceView.Renderer

Questa interfaccia definisce i metodi necessari per disegnare grafici in un GLSurfaceView di OpenGL. Dobbiamo fornire l'implementazione di questi interfacce in una classe separata e utilizziamo il metodo GLSurfaceView.setRenderer() per attaccare questa classe all'oggetto GLSurfaceView.

Dobbiamo implementare i seguenti metodi di GLSurfaceView.Renderer:

a) onSurfaceCreated(): Il sistema chiama questo metodo una volta quando GLSurfaceView viene creato. Possiamo usarlo per impostare le variabili di ambiente di OpenGL o inizializzare gli oggetti grafici di OpenGL.

b) onDrawFrame(): Il sistema chiama questo metodo ogni volta che GLSurfaceView viene ridisegnato. Questo metodo viene principalmente utilizzato per completare l'operazione di disegno dei grafici.

c) onSurfaceChanged(): Quando le proprietà geometriche di GLSurfaceView cambiano, il sistema chiama questo metodo, inclusi il cambiamento di dimensione o la direzione del display del dispositivo. Ad esempio, il sistema chiama questo metodo quando lo schermo cambia da verticale a orizzontale. Questo metodo viene principalmente utilizzato per rispondere ai cambiamenti del contenitore di GLSurfaceView.

Passi sperimentali

1. Aggiungi un nuovo progetto

2. Aggiungi una nuova classe myGLRenderer, che implementa l'interfaccia GLSurfaceView.Renderer

Il codice è il seguente:

public class myGLRenderer implements Renderer {
  @Override
  public void onDrawFrame(GL10 gl) {
    // TODO Metodo generato automaticamente
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // Pulisci la cache
  }
  @Override
  public void onSurfaceChanged(GL10 gl, int width, int height) {
    // TODO Metodo generato automaticamente
    gl.glViewport(0, 0, width, height); // Imposta la vista
  }
  @Override
  public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    // TODO Metodo generato automaticamente
    gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); // Imposta il colore di cancellazione
  }
}

3. Aggiungi una nuova classe myGLSurfaceView, con GLSurfaceView come superclasse

Il codice è il seguente:

public class myGLSurfaceView extends GLSurfaceView {
  public myGLSurfaceView(Context context) {
    super(context);
    // TODO Costruttore generato automaticamente
    mrender = new myGLRenderer();
    setRenderer(mrender);
  }
  private myGLRenderer mrender;
}

4. Il codice principale è il seguente:

public class HelloOpenGLActivity extends Activity {
  /** Chiamato quando l'attività viene creata per la prima volta. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mGLSurfaceView = new myGLSurfaceView(this);
    setContentView(mGLSurfaceView); // Qui usiamo mGLSurfaceView per sostituire il layout.main di uso comune prima
  }
  private myGLSurfaceView mGLSurfaceView;
}

In questo modo, abbiamo completato l'applicazione per disegnare lo sfondo grigio utilizzando OpenGL. Certo, questa è la funzione di base. Successivamente, esploreremo insieme come disegnare figure geometriche semplici utilizzando OpenGL.

I lettori interessati a contenuti relativi a Android possono consultare le sezioni speciali di questo sito: 'Concetti di operazione di activity nel programming Android', 'Concetti di vista View nel programming Android', 'Concetti di operazione del database SQLite nel programming Android', 'Concetti di operazione dei dati in formato JSON nel programming Android', 'Concetti di operazione del database nel programming Android', 'Concetti di operazione dei file nel programming Android', 'Metodi di operazione della scheda SD nel programming Android', 'Tutorial di ingresso e avanzamento nel programming Android', 'Concetti di operazione delle risorse nel programming Android' e 'Concetti di utilizzo dei controlli nel programming Android'.

Spero che l'articolo descritto sia utile per la progettazione di applicazioni Android di tutti.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta agli autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non possiede il diritto di proprietà, non è stato editato manualmente e non assume responsabilità per le relative responsabilità legali. Se trovi contenuti sospetti di violazione del copyright, sei invitato a inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare