У меня следующий код:
@Override
public void run()
{
tickCount = 0L;
Log.d(TAG, "Starting game loop");
while (running)
{
try
{
gameCanvas = surfaceHolder.lockCanvas();
synchronized (surfaceHolder)
{
// Log.d(TAG, tickCount + " ticks so far");
tickCount++;
updateGameState();
render(gameCanvas);
}
} finally
{
if (gameCanvas != null)
{
// do this in a finally so that if an exception is thrown
// during the above, we don't leave the Surface in an
// inconsistent state
surfaceHolder.unlockCanvasAndPost(gameCanvas);
}
}
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что при тестировании приложения растровое изображение не отображается.Я попытался скопировать рисование с использованием и использованием setBitmap.
например.
mutableBackground = backgroundImage.copy(Bitmap.Config.ARGB_8888, true);
, где backgroundImage - это декодированный ресурс рисования.
и ..
mutableBackground = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);
gameCanvas = new Canvas();
gameCanvas.setBitmap(mutableBackground);
gameCanvas.drawColor(Color.GREEN);
и ..
gameCanvas = new Canvas(mutableBackground);
Если я рисую линию в методе рендеринга, он действительно рисует ... но на черном фоне.Как ни странно, если я сделаю
int myColor = mutableBackground.getPixel(100, 100);
int greeness = Color.green(myColor);;
Log.d(TAG, "Greeness - " + greeness);
Журнал показывает .. Зеленость - 255
Таким образом, растровое изображение окрашивается в зеленый цвет, но отображается как черный.Это действительно смущает меня, и я должен разобраться с этим очень скоро.
Спасибо всем, кто может помочь.