我使用下面的代码在我的Android应用程序中调用相机。
使用代码,我可以拍照并获得图片的绝对路径。 但问题是绝对路径始终指向内部存储。 也就是说,手机自动保存了我拍的照片,我不得不逐一删除它们。 我只想要绝对路径,以便我可以将其转换为File对象而不保存在我的存储或SD卡中。 也许,我可以暂时将它保存在我分配的内存中。
有没有办法做到这一点?
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, PICK_FROM_CAMERA);
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != RESULT_OK)
return;
if(requestCode == PICK_FROM_CAMERA){
imageUri = data.getData();
Log.d("메시지", "uri = "+imageUri);
Cursor c = this.getContentResolver().query(imageUri, null, null, null, null);
c.moveToNext();
absolutePath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
Glide.with(this).load(imageUri).into(image);
答案 0 :(得分:0)
您可以将thumbnail图片无内存存入内存或SD卡:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
对于完整尺寸的图像,您需要定义共享文件(例如:SD卡上的缓存文件)并将其设置为MediaStore.EXTRA_OUTPUT
:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// camera app will save photo into sharedFileURI path
intent.putExtra(MediaStore.EXTRA_OUTPUT, sharedFileURI);
startActivityForResult(intent, PICK_FROM_CAMERA);
有关详细信息,请参阅官方文档的Save the Full-size Photo article