跟朋友討論如題中的功能怎麼實現,後來用系統的方法實現了這一功能,說起來有點取巧,就是在確定拍照後的後重新進入相機介面,前面我發過一篇object-c的和swift的上傳頭像,以這個為基礎實現,具體做法是在,選中一張後的**中:
-(void)imagepickercontroller:(uiimagepickercontroller*)picker didfinishpickingmediawithinfo:(nsdictionary *)info
在以下方法中:
//表單請求,上傳檔案
manager.requestserializer = [afjsonrequestserializer serializer];//請求
manager.responseserializer = [afhttpresponseserializer serializer];//響應
manager.requestserializer
.timeoutinterval = 8;
/**這裡需要特別注意一下,因為沒有放具體的上傳位址,所以這個上傳方式是不成功的,但是方法是沒錯的,需要替換成正確的上傳位址
*/[manager post:[nsstring stringwithformat:@"url"] parameters:nil constructingbodywithblock:^(id
formdata) completion:^(bool finished)];
}progress:^(nsprogress *uploadprogress)success:^(nsurlsessiondatatask *task, id responseobject) failure:^(nsurlsessiondatatask *task, nserror *error) ];
主要是這個方法:
//關閉相簿介面
[uiview animatewithduration:0.001 animations:^ completion:^(bool finished)];
用uiview的過渡方法,這個過渡方法在core animation中也有介紹過,尤其注意要把present和dismiss的跳轉裡面的動畫設定為no,否則你設定的時間是無效的,重新開啟相機可酌情給yes,具體效果,可以自己動手嘗試。
另外picker.allowsediting根據需要設定,意思是拍照後顯示剛拍的,可進行編輯,為no時不顯示。
最後再說一句,要想得到多張且統一上傳,就不要把關閉相機和重新開啟的**放在af中,因為是直接上傳的,要拿到請設定全域性變數根據是否選擇來獲取當前拍攝的並儲存。最後統一上傳。
Android呼叫系統前置相機拍照
intent intent new intent mediastore.action image capture intent.putextra camerasensortype 2 呼叫前置攝像頭 測試,發現不正確,並不能直接開啟前置攝像頭,開啟的是上次使用的攝像頭。正確方法是 intent in...
android相機拍照
拍照有兩種方式,一是使用android.hardware.camera,二是使用intent android.media.action.image capture 當然還是第一種好,不過 太複雜,以後有時間再說,這裡就說一下第二種方式吧。try catch exception e 這樣就可以呼叫系統...
Android呼叫系統相簿和系統相機拍照
呼叫系統相機拍照 intent new intent mediastore.action image capture startactivityforresult intent,result camara image result camara image activity的標誌。自已定義 呼叫系統...