你应该在你的应用程序中做这个逻辑。从画廊中挑选图像和使用相机拍摄照片的用途各不相同。
我建议你使用按钮(或任何用户界面,使用户选择一个动作),并为两个动作创建两个单独的方法。假设您创建了两个按钮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