android调用照相机拍照获取照片并做简单剪裁
16lz
2021-01-24
1.调用系统的照相机程序
- Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent,TAKE_PHOTO_WITH_DATA);
2.在onActivityResult中处理返回的data
final Bitmap photo = data.getParcelableExtra("data");
如果不需要做剪切处理就可以直接使用图片了,比如输出到ImageView上
imageView.setImageBitmap(photo);
如果需要做剪切处理,就继续向下执行
3.做剪切处理
- Intentintent=newIntent("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);
- artActivityForResult(intent,PHOTO_PICKED_WITH_DATA);
4.在onActivityResult中处理
与第二步相同。
完整代码:
- publicclassSdCardUriTestActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- privateButtonbtnTake=null;
- privateImageViewlblImage=null;
- privatestaticfinalintPHOTO_PICKED_WITH_DATA=3021;
- privatestaticfinalintCAMERA_WITH_DATA=3023;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btnTake=(Button)findViewById(R.id.btnTake);
- lblImage=(ImageView)findViewById(R.id.lblImage);
- btnTake.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent,CAMERA_WITH_DATA);
- }
- });
- }
- @Override
- protectedvoidonActivityResult(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("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);
- returnintent;
- }
- }
更多相关文章
- Android中的GalleryView实例演示-周末福利有美女图
- 《Android第一行代码》first reading 十一
- Android(安卓)7.0 系统解决拍照的问题 exposed beyond app throu
- 【工具类】如何通过代码安装一个apk文件
- android实现九宫格程序
- Android自定义弹窗进度条
- Android的简单的广播的例子
- Android2.2 自带主题themes.xml的源代码
- Android(安卓)ANR