你應該在你的應用程序中做這個邏輯。從畫廊中挑選圖像和使用相機拍攝照片的用途各不相同。
我建議你使用按鈕(或任何用戶界面,使用戶選擇一個動作),併爲兩個動作創建兩個單獨的方法。假設您創建了兩個按鈕btnPickGallery
和btnTakePicture
。
兩個按鈕都會觸發自己的操作,如onBtnPickGallery
和onBtnTakePicture
。
public void onBtnPickGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), GALLERY_REQUEST_CODE);
}
public void onBtnTakePicture() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = new File(Environment.getExternalStorageDirectory(), "dir/pic.jpg");
Uri outputFileUri = Uri.fromFile(photo);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
}
然後您可以使用onActivityResult()
方法獲取結果。
謝謝,這正是我一直在尋找(與OP過,我打賭)。我只是對代碼進行了一些修改(例如刪除內部的類包裝'rotateOrientationCall'和類似的東西),但它運行得非常好^^ – Ilario 2015-09-14 08:50:33
感謝@llario隨意分發或評論要點以改進代碼。 – 2015-09-14 09:21:27
我改進了圖庫圖像的旋轉和調整大小的方法。一探究竟。 – 2015-10-02 09:38:39