读书人

照相加东西 在camera preview加东西

发布时间: 2012-09-16 17:33:16 作者: rapoo

拍照加东西 在camera preview加东西

 import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; 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. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);                   requestWindowFeature(Window.FEATURE_NO_TITLE);           Preview mPreview = new Preview(this);         DrawOnTop mDraw = new DrawOnTop(this);             setContentView(mPreview);         addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));             } }   class DrawOnTop extends View {           public DrawOnTop(Context context) {                 super(context);                 // TODO Auto-generated constructor stub         }           @Override         protected void onDraw(Canvas canvas) {                 // TODO Auto-generated method stub                                 Paint paint = new Paint();                 paint.setStyle(Paint.Style.FILL);                 paint.setColor(Color.BLACK);                 canvas.drawText("Test Text", 10, 10, paint);                                 super.onDraw(canvas);         }         }   //----------------------------------   class Preview extends SurfaceView implements SurfaceHolder.Callback {     SurfaceHolder mHolder;     Camera mCamera;         Preview(Context context) {         super(context);                 // Install a SurfaceHolder.Callback so we get notified when the         // underlying surface is created and destroyed.         mHolder = getHolder();         mHolder.addCallback(this);         mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     }       public void surfaceCreated(SurfaceHolder holder) {         // The Surface has been created, acquire the camera and tell it where         // to draw.         mCamera = Camera.open();         mCamera.setPreviewDisplay(holder);     }       public void surfaceDestroyed(SurfaceHolder holder) {         // Surface will be destroyed when we return, so stop the preview.         // Because the CameraDevice object is not a shared resource, it's very         // important to release it when the activity is paused.         mCamera.stopPreview();         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);         mCamera.setParameters(parameters);         mCamera.startPreview();     }   }   

?

读书人网 >移动开发

热点推荐