| 24小時(shí)熱門版塊排行榜 |
| 5 | 1/1 | 返回列表 |
| 查看: 1980 | 回復(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畫(huà)布,并且需要繼承surfaceHolder callback 2.然后我們會(huì)看到一下三個(gè)部分:surfaceChanged.surfaceCreated,和surfaceDestroyed。 3.然后進(jìn)行代碼的關(guān)鍵部分的編寫(xiě) 首先我們需要初始化相機(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)行,F(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ù)版主 (文壇精英)
珊瑚小美-----小元家的九妹

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


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

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿北京理工大學(xué)本科211材料工程294求調(diào)劑 +8 | mikasa的圍巾 2026-03-28 | 9/450 |
|
|---|---|---|---|---|
|
[考研] 296材料專碩求調(diào)劑 +9 | 202451007219 2026-04-02 | 10/500 |
|
|
[考研] 生醫(yī)工0831調(diào)劑求推薦 +5 | 小熊睿睿_s 2026-03-27 | 7/350 |
|
|
[考研] 366求調(diào)劑一志愿東北大學(xué) +6 | 運(yùn)氣來(lái)得若有似?/a> 2026-04-02 | 6/300 |
|
|
[考研] 085600,材料與化工321分調(diào)劑 +8 | 大饞小子 2026-03-27 | 10/500 |
|
|
[考研] 【求調(diào)劑】新能源材料本科,一志愿211,初試321 +6 | 求調(diào)劑學(xué)校, 2026-04-02 | 6/300 |
|
|
[考研] 一志愿安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)碩,331分求調(diào)劑 +5 | 蔣昌鵬qtj 2026-04-01 | 5/250 |
|
|
[考研] 0817化工學(xué)碩調(diào)劑 +11 | 努力上岸中! 2026-03-31 | 11/550 |
|
|
[考研] 086502化學(xué)工程342求調(diào)劑 +7 | 阿姨復(fù)古不過(guò) 2026-03-27 | 7/350 |
|
|
[考研] 材料專碩306英一數(shù)二 +7 | z1z2z3879 2026-03-31 | 7/350 |
|
|
[考研] 環(huán)境工程 085701,267求調(diào)劑 +15 | minht 2026-03-29 | 16/800 |
|
|
[考研] 318一志愿吉林大學(xué)生物與醫(yī)藥 求調(diào)劑 +6 | 篤行致遠(yuǎn). 2026-03-28 | 6/300 |
|
|
[考研] 求調(diào)劑:一志愿:南京大學(xué) 專業(yè):0705 總分320 ,本科985,四六級(jí)已過(guò) +3 | lfy760306 2026-03-31 | 3/150 |
|
|
[考研] 336材料求調(diào)劑 +10 | 陳瀅瑩 2026-03-26 | 12/600 |
|
|
[考研] 353求調(diào)劑 +3 | 江上楓_26 2026-03-28 | 3/150 |
|
|
[考研] 調(diào)劑求院校招收 +7 | 鶴鯨鴿 2026-03-28 | 7/350 |
|
|
[考研] 求調(diào)劑 +10 | 家佳佳佳佳佳 2026-03-29 | 10/500 |
|
|
[考研] 342求調(diào)劑 +4 | 加油a李zs 2026-03-26 | 4/200 |
|
|
[考研] 本科新能源科學(xué)與工程,一志愿華理能動(dòng)285求調(diào)劑 +7 | AZMK 2026-03-28 | 11/550 |
|
|
[考研] 285求調(diào)劑 +4 | AZMK 2026-03-27 | 7/350 |
|