| 5 | 1/1 | 返回列表 |
| 查看: 1975 | 回復(fù): 7 | ||||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | ||||
qqhegg榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹
|
[交流]
android 學(xué)習(xí)筆記--------camera 已有5人參與
|
|||
|
最近學(xué)習(xí)android照相機(jī),我所說(shuō)的是自定義相機(jī)而不是調(diào)用系統(tǒng)自帶的相機(jī)功能 android的camera其實(shí)十分的簡(jiǎn)單 1.想要進(jìn)行camera的自定義,首先必須使用surfaceView畫布,并且需要繼承surfaceHolder callback 2.然后我們會(huì)看到一下三個(gè)部分: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è)置照片的大小,對(duì)于高版本的相機(jī)不用推薦直接設(shè)置,因?yàn)橄鄼C(jī)可能不支持下面討論 parameters.setPictureSize(320, 480); //這句對(duì)于2.2以下必須,2.3不需要這句 mCamera.setParameters(parameters); //開(kāi)始預(yù)覽 mCamera.startPreview(); } 在surfaceCreated部分需要進(jìn)行判斷 public void surfaceCreated(SurfaceHolder holder) { if(!IspreView) { mCamera = Camera.open(); //對(duì)于這個(gè)部分經(jīng)常會(huì)出錯(cuò),從android API上我們可以發(fā)現(xiàn)2.2的是這種語(yǔ)法,但是對(duì)于2.3,它還添加了Camera.open(int id);對(duì)于這個(gè)id提供了一個(gè)范圍,我一般采用0,但是很多時(shí)候還是會(huì)報(bào)錯(cuò),具體原因不祥 } try { mCamera.setPreviewDisplay(holder); } catch (IOException e) { mCamera.release(); mCamera = null; } 在這邊一定要釋放掉相機(jī)資源,不然相機(jī)在返回以后再拍照時(shí),非常有可能會(huì)報(bào)錯(cuò),我經(jīng)常把資源釋放放在catch語(yǔ)句的后面。 try { mCamera.setPreviewDisplay(holder); } catch (IOException e) { } mCamera.release(); mCamera = null; } 對(duì)于surfaceDestroyed部分十分簡(jiǎn)單 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個(gè)參數(shù) 前面的2個(gè)可以設(shè)置為null 最后一個(gè)參數(shù)最重要下面的代碼是將我們拍照的圖片保存起來(lái) 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(); } } }; 因?yàn)槲易龅氖且粋(gè)小項(xiàng)目,camera只是其中一個(gè)部分,所以學(xué)習(xí)是參考網(wǎng)上的代碼進(jìn)行。現(xiàn)在把鏈接給出來(lái)http://www.cnblogs.com/chiefCTO/archive/2011/09/27/2193637.html 這是博客園的鏈接,歡迎大家共同探討和研究 對(duì)于camera這個(gè)部分有很多的問(wèn)題存在,比如資源,比如打開(kāi)語(yǔ)句,大家實(shí)際應(yīng)用時(shí)就會(huì)發(fā)現(xiàn),希望可以一起探討呵呵 |
android學(xué)習(xí)筆記 |


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

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

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

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 311求調(diào)劑 +13 | zchqwer 2026-04-01 | 15/750 |
|
|---|---|---|---|---|
|
[考研] 286分調(diào)劑 +18 | Faune 2026-03-30 | 20/1000 |
|
|
[考研] 070300化學(xué)求調(diào)劑 +13 | 小黃鴨寶 2026-03-30 | 13/650 |
|
|
[考研] 311求調(diào)劑 +11 | 藍(lán)月亮亮 2026-03-30 | 11/550 |
|
|
[考研] 0856,材料與化工321分求調(diào)劑 +13 | 大饞小子 2026-03-27 | 14/700 |
|
|
[考研] 材料專碩322分 +9 | 哈哈哈吼吼吼哈 2026-04-01 | 9/450 |
|
|
[考研] 一志愿中農(nóng)0710生物學(xué),微生物方向總分338求調(diào)劑 +3 | 柒xxxx. 2026-03-26 | 3/150 |
|
|
[考研] 安徽大學(xué)專碩生物與醫(yī)藥專業(yè)(086000)324分,英語(yǔ)已過(guò)四六級(jí),六級(jí)521,求調(diào)劑 +10 | 美味可樂(lè)雞翅 2026-03-26 | 12/600 |
|
|
[考研] 299求調(diào)劑 +8 | 嗯嗯嗯嗯2 2026-03-27 | 8/400 |
|
|
[考研] 材料工程專碩求調(diào)劑 +10 | hyl3153942 2026-03-29 | 10/500 |
|
|
[考研] 一志愿中海洋材料357 +4 | 麥恩莉. 2026-03-30 | 4/200 |
|
|
[考研] 313求調(diào)劑 +6 | 賣個(gè)關(guān)子吧 2026-03-31 | 6/300 |
|
|
[考研] 274求調(diào)劑 +6 | xiao愛(ài)同學(xué) 2026-03-30 | 6/300 |
|
|
[考研] 085600,專業(yè)課化工原理,320分求調(diào)劑 +6 | 大饞小子 2026-03-29 | 6/300 |
|
|
[考研] 一志愿食品科學(xué)與工程083200求調(diào)劑 +4 | XQTJZ 2026-03-30 | 4/200 |
|
|
[考研] 356求調(diào)劑 +4 | gysy?s?a 2026-03-28 | 4/200 |
|
|
[考研] 2026年華南師范大學(xué)歡迎化學(xué),化工,生物,生醫(yī)工等專業(yè)優(yōu)秀學(xué)子加入! +3 | llss0711 2026-03-28 | 6/300 |
|
|
[考研] 316求調(diào)劑 +7 | 江辭666 2026-03-26 | 7/350 |
|
|
[考研] 283求調(diào)劑 +3 | A child 2026-03-28 | 3/150 |
|
|
[考研] 環(huán)境專碩324分求調(diào)劑推薦 +5 | 軒小寧—— 2026-03-26 | 5/250 |
|