Android呼叫Camera攝像機拍照

2021-06-18 09:31:46 字數 1292 閱讀 3556

我們可以使用兩類方法:

一是借助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...