一、调用相机拍照,并返回照片,但是照片缩略图而不是原图,如果想获取原图见下一篇博客拍照和从相册中选取照片,并保存到SD卡上
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PHOTO_WITH_DATA);
在onActivityResult获取得到的照片并设置给ImageView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap photo = data.getParcelableExtra("data");
iv.setImageBitmap(photo);
}
二、使用手机拍照并缩放相片部分源码
private static final int CROP_PHOTO_WITH_DATA = 0;
private static final int SCALE_PHOTO_WITH_DATA = 1;
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
iv = (ImageView) findViewById(R.id.iv_photo);
}
public void takePhoto(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CROP_PHOTO_WITH_DATA);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(resultCode!=RESULT_OK)
return;
switch(requestCode){
case CROP_PHOTO_WITH_DATA:
final Bitmap photo = data.getParcelableExtra("data");
if(photo!=null){
doCropPhoto(photo);
}
case SCALE_PHOTO_WITH_DATA:
Bitmap scalePhoto = data.getParcelableExtra("data");
if(scalePhoto!=null){
iv.setImageBitmap(scalePhoto);
}
}
}
protected void doCropPhoto(Bitmap data){
Intent intent = getCropImageIntent(data);
startActivityForResult(intent, SCALE_PHOTO_WITH_DATA);
}
public static Intent getCropImageIntent(Bitmap data) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
intent.putExtra("data", data);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 128);
intent.putExtra("outputY", 128);
intent.putExtra("return-data", true);
return intent;
}