| 5 | 1/1 | 返回列表 |
| 查看: 1981 | 回復(fù): 7 | ||||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||||
qqhegg榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹
|
[交流]
android 學(xué)習(xí)筆記--------camera 已有5人參與
|
|||
|
最近學(xué)習(xí)android照相機(jī),我所說的是自定義相機(jī)而不是調(diào)用系統(tǒng)自帶的相機(jī)功能 android的camera其實十分的簡單 1.想要進(jìn)行camera的自定義,首先必須使用surfaceView畫布,并且需要繼承surfaceHolder callback 2.然后我們會看到一下三個部分:surfaceChanged.surfaceCreated,和surfaceDestroyed。 3.然后進(jìn)行代碼的關(guān)鍵部分的編寫 首先我們需要初始化相機(jī),在surfaceChanged進(jìn)行 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { //定義參數(shù) Camera.Parameters parameters = mCamera.getParameters(); //設(shè)置照片的格式 parameters.setPictureFormat(PixelFormat.JPEG); //設(shè)置照片的大小,對于高版本的相機(jī)不用推薦直接設(shè)置,因為相機(jī)可能不支持下面討論 parameters.setPictureSize(320, 480); //這句對于2.2以下必須,2.3不需要這句 mCamera.setParameters(parameters); //開始預(yù)覽 mCamera.startPreview(); } 在surfaceCreated部分需要進(jìn)行判斷 public void surfaceCreated(SurfaceHolder holder) { if(!IspreView) { mCamera = Camera.open(); //對于這個部分經(jīng)常會出錯,從android API上我們可以發(fā)現(xiàn)2.2的是這種語法,但是對于2.3,它還添加了Camera.open(int id);對于這個id提供了一個范圍,我一般采用0,但是很多時候還是會報錯,具體原因不祥 } try { mCamera.setPreviewDisplay(holder); } catch (IOException e) { mCamera.release(); mCamera = null; } 在這邊一定要釋放掉相機(jī)資源,不然相機(jī)在返回以后再拍照時,非常有可能會報錯,我經(jīng)常把資源釋放放在catch語句的后面。 try { mCamera.setPreviewDisplay(holder); } catch (IOException e) { } mCamera.release(); mCamera = null; } 對于surfaceDestroyed部分十分簡單 public void surfaceDestroyed(SurfaceHolder holder) { mCamera.stopPreview(); mCamera = null; } 4.如何進(jìn)行拍照呢 一般情況下是調(diào)用camera的takepicture函數(shù) public boolean onKeyUp(int keyCode, KeyEvent event) { // TODO Auto-generated method stub switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: mPreview.takePicture(); break; } return true; } takepicture一共有3個參數(shù) 前面的2個可以設(shè)置為null 最后一個參數(shù)最重要下面的代碼是將我們拍照的圖片保存起來 private PictureCallback jpegCallback = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { cameraBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); File myCaptureFile = new File("/sdcard/camera/camera1.jpg" ; try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); cameraBitmap.compress(Bitmap.CompressFormat.JPEG, 80, bos); bos.flush(); bos.close(); Canvas canvas = mHolder.lockCanvas(); canvas.drawBitmap(cameraBitmap, 0, 0, null); mHolder.unlockCanvasAndPost(canvas); } catch (Exception e) { e.getStackTrace(); } } }; 因為我做的是一個小項目,camera只是其中一個部分,所以學(xué)習(xí)是參考網(wǎng)上的代碼進(jìn)行,F(xiàn)在把鏈接給出來http://www.cnblogs.com/chiefCTO/archive/2011/09/27/2193637.html 這是博客園的鏈接,歡迎大家共同探討和研究 對于camera這個部分有很多的問題存在,比如資源,比如打開語句,大家實際應(yīng)用時就會發(fā)現(xiàn),希望可以一起探討呵呵 |
android學(xué)習(xí)筆記 |

木蟲 (職業(yè)作家)
夢未央

榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹


榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 266分,一志愿電氣工程,本科材料,求材料專業(yè)調(diào)劑 +4 | 哇呼哼呼哼 2026-04-02 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 一志愿北京理工大學(xué)本科211材料工程294求調(diào)劑 +8 | mikasa的圍巾 2026-03-28 | 9/450 |
|
|
[考研] 329求調(diào)劑 +8 | miaodesi 2026-04-02 | 10/500 |
|
|
[考研] 324求調(diào)劑 +5 | 想上學(xué)求調(diào) 2026-04-01 | 6/300 |
|
|
[考研] 土木304求調(diào)劑 +6 | 兔突突突, 2026-03-31 | 7/350 |
|
|
[考研] 材料求調(diào)劑 +8 | 呢呢妮妮 2026-04-01 | 8/400 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +8 | 邱gl 2026-03-30 | 16/800 |
|
|
[考研] 土木304求調(diào)劑 +3 | 兔突突突, 2026-03-31 | 3/150 |
|
|
[考研] 349求調(diào)劑 +6 | zwjjjjjj 2026-03-31 | 6/300 |
|
|
[考研] 一志愿西交大080500材料學(xué)碩349 +6 | jqx1258 2026-03-31 | 7/350 |
|
|
[考研] 086000調(diào)劑 +5 | 7901117076 2026-03-26 | 5/250 |
|
|
[考研] 318求調(diào)劑 +10 | 陳晨79 2026-03-30 | 10/500 |
|
|
[考研] 286求調(diào)劑 +6 | Faune 2026-03-30 | 6/300 |
|
|
[考研] 11408總分309,一志愿東南大學(xué)求調(diào)劑,不挑專業(yè) +5 | 天賦帶到THU 2026-03-29 | 6/300 |
|
|
[考研]
|
鐘llll 2026-03-26 | 5/250 |
|
|
[考研] 317分 一志愿南理工材料工程 本科湖工大 求調(diào)劑 +12 | 芋泥小鈴鐺 2026-03-28 | 12/600 |
|
|
[考研] 343求調(diào)劑 +6 | 愛羈絆 2026-03-29 | 6/300 |
|
|
[考研] 數(shù)一英一271專碩(085401)求調(diào)劑,可跨 +7 | 前行必有光 2026-03-28 | 8/400 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 292求調(diào)劑 +4 | 求求了收下我吧?/a> 2026-03-26 | 4/200 |
|