I need to get camera preview data only, but not visible preview. Since I'm doing all this in a service, I had to create a dummy SurfaceView, which works very well.
I've used the code from this answer: https://stackoverflow.com/a/10268650/1395697
However, with TYPE_SYSTEM_OVERLAY
it didn't work. It was invisible but no preview data was received (in onPreviewFrame()
). When I change this argument to 0, I get preview data, but the SurfaceView
is visible.
Do you know any other way to do this?
What I did now is just make a visible SurfaceView
with width and height of 1 and then I create an ImageView
overlay with a specific color so that you don't see the change of color of the SurfaceView
. But this isn't neat at all and I'd really like to do it a bit better.
set android:screenOrientation="portrait" in your AndroidManifest. xml and call camera. setDisplayOrientation(90); before calling camera. startPreview();
Live preview is a feature that allows a digital camera's display screen to be used as a viewfinder. This provides a means of previewing framing and other exposure before taking the photograph.
i also used the same stackOverflow answer, and get the same problem.so:
i've added this code
this.setZOrderOnTop(true);
SurfaceHolder h = this.getHolder();
h.setFormat(PixelFormat.TRANSPARENT);
to my surfaceChanged method, instead of the activity (or a service at my case), and got it trasparent, but the Log complains on abandoned frames :(
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With