六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 57|回复: 0

camera preview覆盖图片

[复制链接]

升级  82%

292

主题

292

主题

292

主题

进士

Rank: 4

积分
910
 楼主| 发表于 2013-1-15 02:23:20 | 显示全部楼层 |阅读模式
摘自:http://groups.google.com/group/android-developers/browse_thread/thread/0d8587b4b2139a85/6e1f453ac051f6bd?#6e1f453ac051f6bd
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();     } }  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表