Android 相机意图图片文件路径
我试图得到我用相机拍摄的照片的路径。当我尝试用我的代码拍照时,字符串是空的。当我关闭我的应用程序时,打开相机应用程序并在那里拍照,然后重新打开我的应用程序并使用我的代码,然后我获得我使用相机应用程序拍摄的最后一张照片的字符串。我的问题是,为什么我的相机不工作,为什么我使用相机应用程序时它工作 这是我的密码:Android 相机意图图片文件路径,android,path,image,Android,Path,Image,我试图得到我用相机拍摄的照片的路径。当我尝试用我的代码拍照时,字符串是空的。当我关闭我的应用程序时,打开相机应用程序并在那里拍照,然后重新打开我的应用程序并使用我的代码,然后我获得我使用相机应用程序拍摄的最后一张照片的字符串。我的问题是,为什么我的相机不工作,为什么我使用相机应用程序时它工作 这是我的密码: public void onClick(View arg0) { switch (arg0.getId()) { case R.id.btnImageCaptu
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btnImageCapture:
Intent openCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(openCamera, OPEN_CAMERA);
break;
}
}
试试这个。它起作用了
private Uri imageUri;
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btnImageCapture:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, OPEN_CAMERA);
break;
}
}
为什么不使用onActivityResult中提供给您的图像的Uri?data.getData();这是因为我需要文件路径请使用Uri尝试我的答案。我不确定Uri是否已填充。如何检查它?我肯定需要文件路径,因为我必须将它保存在SQLite数据库中。它必须是jpg?不能是png吗?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case OPEN_CAMERA:
if (resultCode == RESULT_OK && data != null) {
String picturePath = getLastImagePath();
break;
}
}
}
private Uri imageUri;
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btnImageCapture:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, OPEN_CAMERA);
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case OPEN_CAMERA:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
ImageView imageView = (ImageView) findViewById(R.id.ImageView);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(bitmap);
Toast.makeText(this, selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
.show();
}
}
}
}