我正在使用意图启动相机:
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
getParent().startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)
和使用:
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
photoImage.setImageBitmap(thumbnail);
photoImage.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
但它只是一个缩略图,我如何获得完整的位图?我知道我可以使用自己的Activity并使用:
Camera.PictureCallback()
Run Code Online (Sandbox Code Playgroud)
但无论如何使用Intent做到了吗?
谢谢!
编辑:
我也尝试过:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri uri = data.getData();
imageView.setImageURI(uri);
}
Run Code Online (Sandbox Code Playgroud)
它适用于从库中选择的照片,但对于相机意图,data.getData()返回null.
这似乎是世界上最简单的事情:使用默认的相机活动在Android应用中拍照.但是,StackOverflow和Web上的几个帖子中都有许多陷阱,例如,Null Intents被传回,图片的方向不正确或OutOfMemoryErrors.
我正在寻找一个允许我的解决方案
而且,我想尽可能避免设备配置(制造商,型号,操作系统版本)的具体实现.所以我想知道:实现这一目标的最佳方法是什么?