Java 以编程方式从相机文件夹获取图像
伙计们 我在这里面临一个奇怪的问题。我有一个应用程序,你可以选择从画廊或相机在一个按钮点击图像。一切都很顺利,除了每当我从相机文件夹中选择任何图片时,应用程序就崩溃了。下面是我的密码Java 以编程方式从相机文件夹获取图像,java,android,gallery,android-camera,Java,Android,Gallery,Android Camera,伙计们 我在这里面临一个奇怪的问题。我有一个应用程序,你可以选择从画廊或相机在一个按钮点击图像。一切都很顺利,除了每当我从相机文件夹中选择任何图片时,应用程序就崩溃了。下面是我的密码 case R.id.camera: AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this); builder.setTitle("Choose Image Source"); build
case R.id.camera:
AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this);
builder.setTitle("Choose Image Source");
builder.setItems(new CharSequence[] { "Gallery", "Camera" },
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
Intent intent = new Intent(
Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent,
"Choose a Picture");
startActivityForResult(chooser,
ACTION_REQUEST_GALLERY);
break;
case 1:
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String mImageCaptureUri = null;
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
mImageCaptureUri);
startActivityForResult(cameraIntent,
ACTION_REQUEST_CAMERA);
break;
}
}
});
builder.show();
break;
结果活动:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_GALLERY:
Uri selectedImageUri;
selectedImageUri = data == null ? null : data.getData();
cap.setImageURI(selectedImageUri);
break;
case ACTION_REQUEST_CAMERA:
Bitmap photo = (Bitmap) data.getExtras().get("data");
cap.setImageBitmap(photo);
// CALL THIS METHOD TO GET THE URI FROM THE BITMAP
Uri tempUri = getImageUri(getApplicationContext(), photo);
// CALL THIS METHOD TO GET THE ACTUAL PATH
File finalFile = new File(getRealPathFromURI(tempUri));
Toast.makeText(getApplicationContext(),
finalFile.getAbsolutePath(), 4000).show();
break;
}
}
}
很难说没有logcat,但最可能的原因是图像尺寸太大,使用相机拍摄的照片太大,无法在不缩放的情况下显示,这就是为什么您尝试的一些图像可以正常工作,而相机图像无法正常工作的原因。尝试google:scaling larg bitmaps google开发者,你会发现官方帖子请在日志中发布错误的详细信息。不幸的是,我用手机对其进行了测试,因为模拟器没有任何图片可供选择。它只会与相机文件夹中的照片崩溃,我的图库中有我的Facebook相册,它工作正常。可能是这样的:你不能将手机连接到电脑上查看日志吗?没有做到这一点,Google Play有各种各样的日志收集器应用程序来获取logcat,尽管这些应用程序在Android 4.1之后就不起作用了。现在,我在Toast中获得了图片的完整路径,然后将其分配给imageview。我在图库中选择的所有照片都获取图像路径,例如“storage/sdcard/DCIM/…jpg”,但将图片指定给imageview时出错。有人能告诉我如何从图片路径设置imageviwe吗?谢谢,我发现这就是问题所在。我缩小了相机文件夹中选定的图像,然后才可以查看它,它可以工作!!谢谢