我們可以使用兩類方法:
一是借助intent
和mediastroe
呼叫系統
程式來實現拍照和攝像功能
二是根據
camera api
自寫camera
程式(如360的拍照軟體)
這裡主要記錄第二點
1.【新增許可權】
必須在manifest
內宣告使用許可權,通常由以下三項
一般拍照和攝像的時候需要寫到sd
卡上,所以還有一向許可權宣告如下
2.【初始化】 在
activity
的oncreate
函式中設定好
su***ceview
,包括設定
su***ceholder.callback
物件和su***ceholder
物件的型別,具體如下
sv = (su***ceview)findviewbyid(r.id.peoplemanage_sv_001);
sh = sv.getholder();
sh.addcallback(this);//
(這裡注意,要求activity實現介面 implements callback ,下面3,4,5步的三個函式都是實現這個介面的)
sh.settype(su***ceholder.su***ce_type_push_buffers); // 設定該su***ceholder自己不維護緩衝
3.【開啟攝像頭】
@override
public void su***cecreated(su***ceholder holder)
}} catch (exception e) }}
4.【預覽】
@override
public void su***cechanged(su***ceholder holder, int format, int width,int height) catch (ioexception e) }}
5.【釋放攝像頭】
@override
public void su***cedestroyed(su***ceholder holder)
6.【其它細節】
private su***ceview sv = null;
private su***ceholder sh = null;
private camera camera; // 相機物件
private boolean isopen = false; // 是否為預覽模式
參考
Android 呼叫系統Camera
在android中應用相機功能,一般有兩種 一種是直接呼叫系統相機,一種自己寫的相機。我將分別演示兩種方式的使用 第一種 是使用intent跳轉到系統相機,action為 android.media.action.still image camera import import android.co...
android呼叫camera時發生的攝像頭p
通過調整相機的引數 parameters.setpreviewsize來得到解決。對於攝像頭來說,其得到的 是不變的。但是preview預覽看到的卻是變形的。攝像頭得到的一邊都是方形的。我們可以將preview設定為寬和高都是相等的來顯示攝像頭得到的影象,這種影象沒有經過形變,或者形變是寬和高同等變...
Android系統Camera預覽剛開啟時由暗變明
一 回憶下v4l2驅動操作流程 1.查詢驅動功能 struct v4l2 capability cap ioctl fd,vidioc querycap,cap printf tk driver name s ncard name s nbus info s n cap.driver,cap.car...