700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android调用照相机拍照获取照片并做简单剪裁

android调用照相机拍照获取照片并做简单剪裁

时间:2020-04-02 10:29:12

相关推荐

android调用照相机拍照获取照片并做简单剪裁

1.调用系统的照相机程序

Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,TAKE_PHOTO_WITH_DATA);

2.在onActivityResult中处理返回的data

final Bitmap photo = data.getParcelableExtra("data");

如果不需要做剪切处理就可以直接使用图片了,比如输出到ImageView上

p_w_picpathView.setImageBitmap(photo);

如果需要做剪切处理,就继续向下执行

3.做剪切处理

Intentintent=newIntent("com.android.camera.action.CROP"); intent.setType("p_w_picpath/*"); 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); artActivityForResult(intent,PHOTO_PICKED_WITH_DATA);

4.在onActivityResult中处理

与第二步相同。

完整代码:

publicclassSdCardUriTestActivityextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/privateButtonbtnTake=null; privateImageViewlblImage=null; privatestaticfinalintPHOTO_PICKED_WITH_DATA=3021; privatestaticfinalintCAMERA_WITH_DATA=3023; @OverridepublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); btnTake=(Button)findViewById(R.id.btnTake); lblImage=(ImageView)findViewById(R.id.lblImage); btnTake.setOnClickListener(newView.OnClickListener(){ @OverridepublicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,CAMERA_WITH_DATA); } }); } @OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ //TODOAuto-generatedmethodstub if(resultCode!=RESULT_OK) return; switch(requestCode){ caseCAMERA_WITH_DATA: finalBitmapphoto=data.getParcelableExtra("data"); if(photo!=null){ doCropPhoto(photo); } casePHOTO_PICKED_WITH_DATA: Bitmapphoto1=data.getParcelableExtra("data"); if(photo1!=null){ lblImage.setImageBitmap(photo1); } } } protectedvoiddoCropPhoto(Bitmapdata){ Intentintent=getCropImageIntent(data); startActivityForResult(intent,PHOTO_PICKED_WITH_DATA); } publicstaticIntentgetCropImageIntent(Bitmapdata){ Intentintent=newIntent("com.android.camera.action.CROP"); intent.setType("p_w_picpath/*"); 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); returnintent; } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。