Вывод картинки в SurfaceView
Вывести изображение с камера в SurfaceView получается. А как вывести в SurfaceView картинку, если изображение с камеры отсутствует (камера выключена).
Источник: Stack Overflow на русском
Вывести изображение с камера в SurfaceView получается. А как вывести в SurfaceView картинку, если изображение с камеры отсутствует (камера выключена).
Я вышел из положение следующим образом:
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();
}
Нужно переопределить метод onDraw(Canvas canvas) у SurfaceView:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(mbitmap, 0,0,null);
}
Где mbitmap
- Bitmap
, который нужно нарисовать.
Также у вашего SurfaceView
нужно вызвать метод setWillNotDraw(false);
, который укажет ему, что его нужно рисовать (вызывать onDraw
). Без этого onDraw
не будет вызван.
Как определить, что камера не работает - думаю, задача тривиальная...