Android быстрый доступ к пикселям и манипуляции с ними

Я пытаюсь перенести эмулятор, который я написал на java, на android. Дела идут хорошо, я смог перенести большую часть своих кодов с небольшими изменениями, однако из-за того, как работает эмуляция, мне нужно рендерить изображение на уровне пикселей.

Что касается Java для рабочего стола, я использую

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

, что позволяет мне получать ссылку на буфер пикселей и обновлять его на лету (минимизировать создание объектов)

В настоящее время это то, что мой эмулятор для Android делает для каждого кадра

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

}   

pixelA - это массив int [], pixelA содержит всю информацию о цвете, поэтому в каждом кадре ему придется создавать объект растрового изображения, выполняя

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

, что я считаю довольно дорогостоящим и медленным.

Есть ли способ эффективно рисовать пиксели с помощью холста?

9
задан Kara 31 January 2014 в 03:50
поделиться