| 8 | 1/1 | 返回列表 |
| 查看: 1974 | 回復(fù): 7 | ||||
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)行。現(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ù)版主 (文壇精英)
珊瑚小美-----小元家的九妹

銅蟲 (初入文壇)

木蟲 (小有名氣)
| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 289求調(diào)劑 +21 | 新時代材料 2026-03-27 | 23/1150 |
|
|---|---|---|---|---|
|
[考研] 一志愿上海海洋大學(xué)083200食品學(xué)碩,求調(diào)劑,接受其他專業(yè) +5 | what張 2026-04-01 | 5/250 |
|
|
[考研] 275求調(diào)劑 +12 | waltzh 2026-04-01 | 12/600 |
|
|
[考研] 070300化學(xué)279求調(diào)劑 +15 | 哈哈哈^_^ 2026-03-31 | 17/850 |
|
|
[考研] 309求調(diào)劑 +19 | 誰不是少年 2026-03-29 | 19/950 |
|
|
[考研] 085600,材料與化工321分調(diào)劑 +5 | 大饞小子 2026-03-27 | 7/350 |
|
|
[考研] 283求調(diào)劑 +9 | A child 2026-03-28 | 9/450 |
|
|
[考研] 一志愿北交材料工程總分358 +5 | cs0106 2026-04-01 | 7/350 |
|
|
[考研] 材料調(diào)劑 +11 | 一樣YWY 2026-03-31 | 11/550 |
|
|
[考研] 086000生物與醫(yī)藥298調(diào)劑求助 +4 | 元元青青 2026-03-31 | 6/300 |
|
|
[考研] 一志愿武理材料工程302調(diào)劑環(huán)化或化工 +15 | Doleres 2026-03-31 | 16/800 |
|
|
[考研] 江蘇蘇北高校誠邀調(diào)劑同學(xué) +3 | zzll406 2026-03-31 | 3/150 |
|
|
[考研] 297求調(diào)劑 +17 | 田洪有 2026-03-26 | 18/900 |
|
|
[考研] 298求調(diào)劑 +4 | 種圣賜 2026-03-28 | 4/200 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 081200-314 +3 | LILIQQ 2026-03-27 | 4/200 |
|
|
[考研] 330一志愿中國海洋大學(xué) 化學(xué)工程 085602 有讀博意愿 求調(diào)劑 +3 | wywy.. 2026-03-27 | 4/200 |
|
|
[考研] 285求調(diào)劑 +4 | AZMK 2026-03-27 | 7/350 |
|
|
[考研] 315調(diào)劑 +4 | 0860求調(diào)劑 2026-03-26 | 5/250 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|