有时候我们需要的图片并不适合我们想要的大小, 那么我们就可以用到系统自带的图片裁剪功能, 把规定范围的图像给剪出来。

贴上部分代码:

  1. //调用图库
  2. Intentintent=newIntent();
  3. intent.setType("image/*");
  4. intent.putExtra("crop","true");//crop=true有这句才能出来最后的裁剪页面.
  5. intent.putExtra("aspectX",5);//这两项为裁剪框的比例.
  6. intent.putExtra("aspectY",4);
  7. //输出地址
  8. intent.putExtra("output",Uri.fromFile(newFile("SDCard/1.jpg")
  9. intent.putExtra("outputFormat","JPEG");//返回格式
  1. startActivityForResult(Intent.createChooser(intent,"选择图片"),1);


  1. //调用相机
  2. Intentintent=newIntent(
  3. MediaStore.ACTION_IMAGE_CAPTURE,null);
  4. intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(newFile(
  5. "SDCard/1.jpg")));
  6. startActivityForResult(intent,2);


在调用了以上任意一种方法后, 系统会返回onActivityResult, 我们在这个方法中处理就可以了

    1. /**
    2. *获取返回的相片
    3. */
    4. @Override
    5. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata)
    6. {
    7. if(resultCode==0)
    8. return;
    9. if(requestCode==2)//调用系统裁剪
    10. {
    11. Filepicture=newFile("SDCard/1.jpg");
    12. startPhotoZoom(Uri.fromFile(picture));
    13. }elseif(requestCode==PHOTO_CODE)//得到裁剪后的图片
    14. {
    15. try
    16. {
    17. BitmapFactory.Optionsoptions=newBitmapFactory.Options();
    18. options.inSampleSize=2;
    19. Bitmapbitmap=BitmapFactory.decodeFile("SDCard/1.jpg",options);
    20. if(bitmap!=null)//保存图片
    21. {
    22. mCacheBitmap=bitmap;
    23. FileOutputStreamfos=null;
    24. fos=newFileOutputStream("SDCard/1.jpg");
    25. mCacheBitmap.compress(Bitmap.CompressFormat.JPEG,100,fos);
    26. }
    27. }catch(Exceptione)
    28. {
    29. //TODO:handleexception
    30. }
    31. }
    32. super.onActivityResult(requestCode,resultCode,data);
    33. }
    34. /**
    35. *裁剪图片
    36. *@paramuri
    37. */
    38. publicvoidstartPhotoZoom(Uriuri){
    39. Intentintent=newIntent("com.android.camera.action.CROP");
    40. intent.setDataAndType(uri,"image/*");
    41. intent.putExtra("crop","true");//crop=true有这句才能出来最后的裁剪页面.
    42. intent.putExtra("aspectX",5);//这两项为裁剪框的比例.
    43. intent.putExtra("aspectY",4);//x:y=1:2
    44. intent.putExtra("output",Uri.fromFile(newFile("SDCard/1.jpg")));
    45. intent.putExtra("outputFormat","JPEG");//返回格式
    46. startActivityForResult(intent,PHOTO_CODE);

更多相关文章

  1. 读书笔记——《Android(安卓)开发艺术探索》Activity工作过程阅
  2. Android(安卓)电话涉及到的几个类备注
  3. Android手机客户端访问.NET服务器端的方法(1)
  4. 获取Android手机上的图片和视频缩略图
  5. Android屏幕大小自适应
  6. Android下保存简单网页到本地(包括简单图片链接转换)
  7. 深入理解 Android(安卓)卷I - 第4章 深入理解 Zygote
  8. Android高效加载大图,防止OOM,以及多图解决方案
  9. Android中实现自动轮播的框架(Banner)的介绍以及使用

随机推荐

  1. Android(安卓)Kill App
  2. android缓存机制
  3. Android设置Progress的颜色
  4. android评分条RatingBar自定义设置
  5. Android(安卓)屏幕截图 代码
  6. android截屏
  7. Android(安卓)网络图片查看器
  8. android Pull解析xml 使用小结
  9. Android(安卓)开发常用代码片段
  10. Android(安卓)源代码在线阅读