how to overlay an image over the camera preview?

by srajpal » Sat, 31 Jan 2009 07:48:57 GMT

Sponsored Links
 Does someone know how I can overlay an image over the camera preview?

how to overlay an image over the camera preview?

by srajpal » Sat, 31 Jan 2009 09:31:49 GMT

 I checked out the api demo, it helps to place the camera preview on
top of the surface view, but the buffers are handid over to the camera
so anything drawn on the canvas, which is received from the handler,
is ignored.

There must be some way.  I just don't know it yet.


Sponsored Links

how to overlay an image over the camera preview?

by Dave Sparks » Sat, 31 Jan 2009 09:44:50 GMT

 No, you don't draw on the camera preview surface. You create a
transparent surface above it in the Z stack and draw on that.


how to overlay an image over the camera preview?

by srajpal » Sun, 01 Feb 2009 10:56:47 GMT

 sounds good, do you have an example piece of code or can you please
point me to something.


how to overlay an image over the camera preview?

by srajpal » Sun, 01 Feb 2009 12:01:17 GMT

 layed around with this a little and solved it just like Dave Sparks
Thank you Dave
here is the code

import android.content.Context;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;

public class TestCameraOverlay extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {


Preview mPreview = new Preview(this);
DrawOnTop mDraw = new DrawOnTop(this);

addContentView(mDraw, new LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));


class DrawOnTop extends View {

public DrawOnTop(Context context) {
// TODO Auto-generated constructor stub

protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub

Paint paint = new Paint();
canvas.drawText("Test Text", 10, 10, paint);




class Preview extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
Camera mCamera;

Preview(Context context) {

// Install a SurfaceHolder.Callback so we get notified when
// underlying surface is created and destroyed.
mHolder = getHolder();

public void surfaceCreated(SurfaceHolder holder) {
// The Surface has been created, acquire the camera and tell
it where
// to draw.
mCamera =;

public void surfaceDestroyed(SurfaceHolder holder) {
// Surface will be destroyed when we return, so stop the
// Because the CameraDevice object is not a shared resource,
it's very
// important to release it when the activity is paused.
mCamera = null;

public void surfaceChanged(SurfaceHolder holder, int format, int
w, int h) {
// Now that the size is known, set up the camera parameters
and begin
// the preview.
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);


On Jan 31, 9:56pm, srajpal <> wrote:

Other Threads

1. Error receiving broadcast ... on Activity Finish

I tried emulator -wipe-data and it still doesn't work..Does anyone
have a suggestion?



2. GTalk sendDataMessage from Server

Did you ever get this working?  I implemented the background service
solution, but it is unreliable...

3. GTalk subscription requests broken ..

4. Create APK of my Project (Need FAST Answer)

5. Maps zoom granularity.

6. How to force ViewBinder redraw?

7. Radio Button Selection not Visible