Это то, что я нашел.
Из графической документации затмения:
Примечание. При каждом прохождении холста из SurfaceHolder предыдущее состояние холста сохраняется. Чтобы правильно анимировать вашу графику, вы должны перекрасить всю поверхность. Например, вы можете очистить предыдущее состояние холста, заполнив цвет с помощью drawColor () или установив фоновое изображение с помощью drawBitmap (). В противном случае вы увидите следы ранее выполненных рисунков
Итак, код, который я использовал, выглядит следующим образом:
в onCreate ()
mBitmapBase = BitmapFactory.decodeResource (getResources (), R.drawable.bidBackground);
в onSurfaceChanged ()
// размер фонового растрового изображения, чтобы он рисовался эффективно
mBitmapBackground = Bitmap.createScaledBitmap (mBitmapBackground, xMax, yMax, true);
и в Run ()
пытаться
{
canvas = sHolder.lockCanvas ();
если (холст! = ноль)
canvas.drawBitmap (mBitmapBackground, 0, 0, null);
Насколько я могу судить, это настолько эффективно, насколько это возможно. Хотя, если кто-нибудь сможет исправить меня, я бы с удовольствием это услышал.