在我的项目中,我遇到了将图片从 android 插入数据库的问题。 我成功地从图库移动设备插入了图片,但无法从相机移动设备插入图片。 这是我的源代码
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CAMERA) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaColumns.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
pathToOurFile = filePath;
format = filePath.substring(filePath.lastIndexOf(".") + 1,
filePath.length());
this.imGambar.setImageBitmap((Bitmap) data.getExtras().get(
"data"));
} else if (requestCode == SELECT_FILE) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
pathToOurFile = filePath;
format = filePath.substring(filePath.lastIndexOf(".") + 1,
filePath.length());
this.imGambar
.setImageBitmap(BitmapFactory.decodeFile(filePath));
}
}
}
最佳答案
此方法无法正常获取请求相机 Activity 结果中的 Uri。你最好使用:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mImageCaptureUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
在 onActivityResult 中:
String path = mImageCaptureUri.toString();
哪里
Uri mImageCaptureUri ;
是一个全局变量。
希望对你有帮助...
关于java - 将图片从android插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092737/