民间。
我在这里遇到一个奇怪的问题。我有一个应用程序,您可以通过按钮单击从图库或相机中选择图像。一切顺利,除非我从相机文件夹中选择任何图片,应用程序刚刚崩溃。下面是我的代码
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;
}
}
}
答案 0 :(得分:0)
很难说没有logcat,但最可能的原因是图像尺寸较大,用相机拍摄的照片要大而不缩放,这就是你试过的一些图像在相机图像没有的情况下工作的原因。尝试谷歌:缩放大型位图谷歌开发人员,你会发现官方帖子