Вывод картинки в SurfaceView

Рейтинг: 2Ответов: 2Опубликовано: 29.12.2014

Вывести изображение с камера в SurfaceView получается. А как вывести в SurfaceView картинку, если изображение с камеры отсутствует (камера выключена).

Ответы

▲ 2Принят

Я вышел из положение следующим образом:

private SurfaceView SV;
private SurfaceHolder holderSV;
private Camera camera;

Как создать SurfaceView и как вывести на него изображение с камеры писать не буду. А вот вывод картинки вместо камеры делаю так:

if (buffer[1] == 4) {                       // если нужно вывести картинку cat
    SV.setBackgroundResource(R.drawable.cat);
}
else {                                      // если нужно вывести изображение с камеры
    SV.setBackground(null);
    camera.setPreviewDisplay(holderSV);
    camera.startPreview();
}
▲ 1

Нужно переопределить метод onDraw(Canvas canvas) у SurfaceView:

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawBitmap(mbitmap, 0,0,null);

}

Где mbitmap - Bitmap, который нужно нарисовать.
Также у вашего SurfaceView нужно вызвать метод setWillNotDraw(false);, который укажет ему, что его нужно рисовать (вызывать onDraw). Без этого onDraw не будет вызван.
Как определить, что камера не работает - думаю, задача тривиальная...