看板 AndroidDev 關於我們 聯絡資訊
寫了一個照相機的功能,想在拍照後的照片,加上文字 看了很多範例,先寫一個主要的java檔,裡面只有一個 Button,按下button後, preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback); 裡面的三個函式,也寫在同一個java 然後還有另一個prview.java 檔 裡頭就是一些照相機的設置,就像下列 其中的draw函式,是我想在拍攝後的圖片,加上yes這個字, 但是每次拍照後,所存下的檔案,裡頭都沒有任何文字出現 該怎麼解決呢 拜託大大們了 package cgt.test; import java.io.IOException; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PixelFormat; import android.hardware.Camera; import android.hardware.Camera.PreviewCallback; import android.view.SurfaceHolder; import android.view.SurfaceView; class Preview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder surfaceHolder; public Camera camera; private Paint paint; Preview(Context context) { super(context); /* 取得holder */ surfaceHolder = getHolder(); surfaceHolder.addCallback(this); /* 設定預覽Buffer Type */ surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { /* 若相機非在預覽模式,則開啟相機 */ camera = Camera.open(); try { /* setPreviewDisplay唯一的參數為SurfaceHolder */ camera.setPreviewDisplay(holder); camera.setPreviewCallback(new PreviewCallback() { public void onPreviewFrame(byte[] data, Camera arg1) { /* 在此可針對預覽圖像作一些優化 */ } }); } catch (IOException e) { e.printStackTrace(); } } public void surfaceDestroyed(SurfaceHolder holder) { /* 停止Preview */ camera.stopPreview(); camera.release(); camera = null; } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { /* 建立Camera.Parameters物件 */ Camera.Parameters parameters = camera.getParameters(); /* 設定預覽畫面大小 */ parameters.setPreviewSize(320, 240); /* 設定圖像格式 */ parameters.setPictureFormat(PixelFormat.JPEG); /* 將上述設定之參數給Camera */ camera.setParameters(parameters); /* 立即執行Preview */ camera.startPreview(); } @Override public void draw(Canvas canvas) { super.draw(canvas); canvas = surfaceHolder.lockCanvas(null); paint = new Paint(); paint.setColor(Color.BLUE); /* 繪製畫布 */ canvas.drawColor(Color.BLACK); /* 於畫布繪製圖形 */ //canvas.drawRect(new RectF( pLeft,pTop,pRight,pBottom ), paint); canvas.drawText("yes", 100, 100, paint); surfaceHolder.unlockCanvasAndPost(canvas); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.132.201