做專案用到android自帶相機的地方蠻多,也經常看到群裡有人在問。
所以決定把思路和**寫出來,以供自己以後參考。
第一步申請許可權
xml裡面也要申請許可權喲
6.0及以上都要申請危險許可權,我是在github上找的乙個依賴,挺好用的,只填寫需要的許可權就可以了。
第二步。呼叫系統相機
獲得路徑,6.0以上要用contentvalues傳路徑過去,如果我們不傳路徑也可以通過onactivityresult的data獲得,但是因為data的資料量太小,出來的都很模糊,就感覺像是擼多了。。。所以我們要傳乙個路徑過去,讓拍好的**儲存起來。
private string mfilepath;第三步。獲得返回值。因為我們傳的是路徑,所以data是null。public void starsystemphone(utilitybean utilitybean) else
} else tlog.error("沒有檔案");
// intent intent = new intent(mediastore.action_image_capture);
// startactivityforresult(intent, util.request_system_take);
}
就直接獲得檔案判斷是否為null,最好測試的時候轉成bitmap顯示出來。
呼叫7.0相機
前幾個步驟是一樣的,只是要新增以下東西。
因為7.0不能直接獲得路徑,所以我們需要找個東西代替一下。
我背上的發現會被壓縮,所以我這裡把**貼了出來,前面的name自定義,自己看得懂就好,後面填寫自己的包名。
name="my_images"
path=
"android/data/填寫自己的包名/" />
那我們現在建立了新的路徑,所以現在要去讓系統知道7.0要獲得的是這個路徑。
Android呼叫系統前置相機拍照
intent intent new intent mediastore.action image capture intent.putextra camerasensortype 2 呼叫前置攝像頭 測試,發現不正確,並不能直接開啟前置攝像頭,開啟的是上次使用的攝像頭。正確方法是 intent in...
Android呼叫系統相簿和系統相機拍照
呼叫系統相機拍照 intent new intent mediastore.action image capture startactivityforresult intent,result camara image result camara image activity的標誌。自已定義 呼叫系統...
android相機拍照
拍照有兩種方式,一是使用android.hardware.camera,二是使用intent android.media.action.image capture 當然還是第一種好,不過 太複雜,以後有時間再說,這裡就說一下第二種方式吧。try catch exception e 這樣就可以呼叫系統...