(android硬件应用实战)摄像头拍照实现和总结
在實(shí)現(xiàn)攝像頭拍照功能應(yīng)用之前,考慮兩個風(fēng)險
【1】?????? 你的應(yīng)用不是每一款android 機(jī)器都可以使用
主要原因:
???? 攝像頭拍照功能執(zhí)行的過程為? 應(yīng)用調(diào)用android系統(tǒng)API-->系統(tǒng)API,調(diào)用底層驅(qū)動-->底層驅(qū)動驅(qū)動硬件
???? 一般的android手機(jī)有廠商自定寫驅(qū)動,實(shí)現(xiàn)操作系統(tǒng),一些定制小廠商的android系統(tǒng)API實(shí)現(xiàn),不是那怎完整,或者就是不支持,導(dǎo)致的結(jié)果是,你的應(yīng)用裝上去就彈出應(yīng)用程序異常。
【2】?????? 你的應(yīng)用在不同的型號,品牌機(jī)器上執(zhí)行過程中,反應(yīng)時間也不一樣
主要原因:當(dāng)前android手機(jī)的性能還是有限的,在不同配置先下,手機(jī)硬件執(zhí)行的反應(yīng)時間也不一樣。舉例:調(diào)用鏡頭,鏡頭初始化的時間,鏡頭響應(yīng)拍照的指令的時間,等
?
前沿: 本文實(shí)戰(zhàn)的應(yīng)用為定時連拍照片,拍照過程中沒有閃光等,沒有聲音,下面是對應(yīng)用實(shí)現(xiàn)過程中,對調(diào)用攝像頭,進(jìn)行拍照的總結(jié)
?
1 拍照第一步 初始化Camera
?? 初始化過程
? 獲取Camera實(shí)例
?
camera =Camera.open();?
設(shè)置鏡頭的參數(shù) (無閃光燈,且鏡頭角度轉(zhuǎn)90度,注:默認(rèn)攝像頭是橫拍得)
?
Camera.Parameters parameters=camera.getParameters();parameters.setFlashMode("off");
parameters.set("rotation",90);
camera.setParameters(parameters);
開啟預(yù)覽(在執(zhí)行拍照指令前,必須調(diào)用)
?
camera.startPreview();?
2 設(shè)置拍照指令,調(diào)用 反饋事件,實(shí)現(xiàn)獲取照片,并存儲
設(shè)置反饋事件:
PictureCallback pictureCallback=new PictureCallback(){public void onPictureTaken(byte[] data,Camera camera)
{
FileOutputStream outSteam=null;
try{
SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");
String times=format.format((new Date()));
outSteam=new FileOutputStream("/sdcard/MyImages/"+times+".jpg");
outSteam.write(data);
outSteam.close();
}
catch(FileNotFoundException e)
{
Log.d("Camera", "row");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
};
?
執(zhí)行拍照指令
?
3 拍照完成后,釋放鏡頭
camera.takePicture(null, null, pictureCallback);4 配置權(quán)限:
在? AndroidManifest.xml 文件中設(shè)置攝像頭權(quán)限
?<uses-permission android:name="android.permission.CAMERA"/>
?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的(android硬件应用实战)摄像头拍照实现和总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: N!的尾部连续0的个数
- 下一篇: 无知乱吃药