android schnell pixel Zugriff und manipulation

Ich versuche, port-emulator, den ich geschrieben habe in java auf android. Es läuft alles schön, ich war in der Lage zu Hafen, die meisten meiner codes mit geringfügigen änderungen, aber aufgrund wie die emulation funktioniert, brauche ich zum Rendern Bild auf pixel-Ebene.

Als für desktop-java-ich verwende

int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData(); 

die es mir erlauben, um den Verweis auf das pixel-buffer und aktualisieren Sie es on-the-fly(minimieren-Objekt erstellen)

Derzeit das ist, was mein emulator für android hat für jeden Rahmen

@Override
public void onDraw(Canvas canvas)
{
    buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
    canvas.drawBitmap(buffer, 0, 0, null);

}   

pixelsA ist ein array int[], pixelsA enthält alle Farbe Informationen, so dass jeder Rahmen, es wird ein bitmap-Objekt zu tun

buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);

denen ich glaube, dass ist ziemlich teuer und langsam.

Gibt es eine Möglichkeit zum zeichnen von Pixeln effizient mit der Leinwand?

  • Stimmt, createBitmap langsam, Speicher zu kopieren, und selbst die Konvertierung von pixel-format in Ihrem Fall!
InformationsquelleAutor afro100 | 2011-09-29
Schreibe einen Kommentar