protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); takePhoto = (Button) findViewById(R.id.take_photo); picture = (ImageView) findViewById(R.id.picture); takePhoto.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 创建File对象,用于存储拍照后的图片 File outputImage = new File(Environment. getExternalStorageDirectory(), "tempImage.jpg"); try { if (outputImage.exists()) {
outputImage.delete(); } outputImage.createNewFile(); } catch (IOException e) {
e.printStackTrace(); } imageUri = Uri.fromFile(outputImage); Intent intent = new Intent("android.media.action. IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, TAKE_PHOTO); // 启动相机程序
}
});
}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case TAKE_PHOTO: if (resultCode == RESULT_OK) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(imageUri, "image/*"); intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, CROP_PHOTO); // 启动裁剪程序
} break; case CROP_PHOTO: if (resultCode == RESULT_OK) { try { Bitmap bitmap = BitmapFactory.decodeStream (getContentResolver() .openInputStream(imageUri)); picture.setImageBitmap(bitmap); // 将裁剪后的照片显示出来 } catch (FileNotFoundException e) {
e.printStackTrace(); }
} break; default:
break; }
}
问题就是可以打开相机并裁减但是在imageview里面不能显示裁减的截图。在相应的路径下可以找到output文件但是没有任何内容