Как очистить рамку предварительного просмотра от поверхности после stopPreview - PullRequest
3 голосов
/ 06 сентября 2011

Когда я вызываю stopPreview на моей камере, последний кадр остается на поверхности.Как очистить его, например, черным?

Я пробовал setBackGroundColor, setVisibility, но ни один из них не имеет значения.Я предполагаю, потому что это типа PUSH_BUFFER.

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Вы пробовали следующее?В вашем виде поверхности переопределите onDraw примерно так:

@Override
public void draw(Canvas canvas) {
   super.draw(canvas);

   if (m_stopped) // Set it to true when you stop the preview.
   {
       canvas.drawColor(Color.BLACK);
   }
}

Возможно, вам потребуется вызвать invalidate () после остановки предварительного просмотра, чтобы убедиться, что вызывается onDraw.

0 голосов
/ 07 сентября 2011

Спасибо, Лиор,

К сожалению, я допустил ошибку школьника и предположил, что 0 был черным при использовании setBackGroundColor.

После прочтения документов это прозрачно, поэтому теперь я использую Color.BLACK, которыйработает как положено.

...