Android--啟動(dòng)拍照功能并返回結(jié)果

簡(jiǎn)單的調(diào)用了一下系統(tǒng)的拍照功能,下面代碼:

//拍照的方法

private void openTakePhoto(){

/**

*在啟動(dòng)拍照之前最好先判斷一下sdcard是否可用

*/

String state = Environment.getExternalStorageState();//拿到sdcard是否可用的狀態(tài)碼

if (state.equals(Environment.MEDIA_MOUNTED)){//如果可用

Intent intent = newIntent("android.media.action.IMAGE_CAPTURE");

startActivityForResult(intent,TAKE_PHOTO);

}else {

Toast.makeText(SettingActivity.this,"sdcard不可用",Toast.LENGTH_SHORT).show();

}

}

拍完照片后,我們肯定視需要拿到我們已經(jīng)拍好的照片去進(jìn)行一些操作(例如,換頭像、發(fā)帶圖狀態(tài)等等),這時(shí)候我們就需要重寫(xiě)onActivityResult()方法,去拿到我們拍好的照片去進(jìn)行操作,我們可以通過(guò)下面兩種方式去拿到我們的照片,他的加過(guò)就封裝在了我們的Intent里面,我們只需要取出來(lái)即可:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intentdata) {

super.onActivityResult(requestCode, resultCode, data);

if (data!= null) {

switch (requestCode) {

case TAKE_PHOTO://拍攝圖片并選擇

//兩種方式獲取拍好的圖片

if (data.getData() != null|| data.getExtras() != null){//防止沒(méi)有返回結(jié)果

Uri uri =data.getData();

if (uri != null) {

photo =BitmapFactory.decodeFile(uri.getPath());//拿到圖片

}

if (photo == null) {

Bundle bundle =data.getExtras();

if (bundle != null){

photo =(Bitmap) bundle.get("data");

} else {

Toast.makeText(getApplicationContext(), "找不到圖片",

Toast.LENGTH_SHORT).show();

}

}

//處理圖片

//裁剪圖片

}

break;

當(dāng)然,開(kāi)發(fā)完APP也是需要進(jìn)行全方位的檢測(cè):www.ineice.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容