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

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

2.在onActivityResult中处理返回的data
final Bitmap photo = data.getParcelableExtra("data");
如果不需要做剪切处理就可以直接使用图片了,比如输出到ImageView上
imageView.setImageBitmap(photo);
如果需要做剪切处理,就继续向下执行

3.做剪切处理

        
  1. Intentintent=newIntent("com.android.camera.action.CROP");
  2. intent.setType("image/*");
  3. intent.putExtra("data",data);
  4. intent.putExtra("crop","true");
  5. intent.putExtra("aspectX",1);
  6. intent.putExtra("aspectY",1);
  7. intent.putExtra("outputX",128);
  8. intent.putExtra("outputY",128);
  9. intent.putExtra("return-data",true);
  10. artActivityForResult(intent,PHOTO_PICKED_WITH_DATA);

4.在onActivityResult中处理
与第二步相同。

完整代码:

        
  1. publicclassSdCardUriTestActivityextendsActivity{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. privateButtonbtnTake=null;
  4. privateImageViewlblImage=null;
  5. privatestaticfinalintPHOTO_PICKED_WITH_DATA=3021;
  6. privatestaticfinalintCAMERA_WITH_DATA=3023;
  7. @Override
  8. publicvoidonCreate(BundlesavedInstanceState){
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.main);
  11. btnTake=(Button)findViewById(R.id.btnTake);
  12. lblImage=(ImageView)findViewById(R.id.lblImage);
  13. btnTake.setOnClickListener(newView.OnClickListener(){
  14. @Override
  15. publicvoidonClick(Viewv){
  16. //TODOAuto-generatedmethodstub
  17. Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
  18. startActivityForResult(intent,CAMERA_WITH_DATA);
  19. }
  20. });
  21. }
  22. @Override
  23. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
  24. //TODOAuto-generatedmethodstub
  25. if(resultCode!=RESULT_OK)
  26. return;
  27. switch(requestCode){
  28. caseCAMERA_WITH_DATA:
  29. finalBitmapphoto=data.getParcelableExtra("data");
  30. if(photo!=null){
  31. doCropPhoto(photo);
  32. }
  33. casePHOTO_PICKED_WITH_DATA:
  34. Bitmapphoto1=data.getParcelableExtra("data");
  35. if(photo1!=null){
  36. lblImage.setImageBitmap(photo1);
  37. }
  38. }
  39. }
  40. protectedvoiddoCropPhoto(Bitmapdata){
  41. Intentintent=getCropImageIntent(data);
  42. startActivityForResult(intent,PHOTO_PICKED_WITH_DATA);
  43. }
  44. publicstaticIntentgetCropImageIntent(Bitmapdata){
  45. Intentintent=newIntent("com.android.camera.action.CROP");
  46. intent.setType("image/*");
  47. intent.putExtra("data",data);
  48. intent.putExtra("crop","true");
  49. intent.putExtra("aspectX",1);
  50. intent.putExtra("aspectY",1);
  51. intent.putExtra("outputX",128);
  52. intent.putExtra("outputY",128);
  53. intent.putExtra("return-data",true);
  54. returnintent;
  55. }
  56. }

更多相关文章

  1. Android中的GalleryView实例演示-周末福利有美女图
  2. 《Android第一行代码》first reading 十一
  3. Android(安卓)7.0 系统解决拍照的问题 exposed beyond app throu
  4. 【工具类】如何通过代码安装一个apk文件
  5. android实现九宫格程序
  6. Android自定义弹窗进度条
  7. Android的简单的广播的例子
  8. Android2.2 自带主题themes.xml的源代码
  9. Android(安卓)ANR

随机推荐

  1. Android Layout Tricks #3: Optimize wit
  2. Android中Java反射技术的使用示例
  3. android之具有选择功能的AlertDialog
  4. android 调用系统自带录音实现,语音录制与
  5. android 系统学习资料
  6. Android android:focusableInTouchMode
  7. Android dip转化为px
  8. Android实现ListView或GridView首行/尾行
  9. Android Drawable、Bitmap、byte[]之间的
  10. android实现圆形头像