首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

Android 图像系列: 图片的剪裁与相机调用

2012-11-23 
Android 图像系列: 图片的裁剪与相机调用有时候我们需要的图片并不适合我们想要的大小, 那么我们就可以用

Android 图像系列: 图片的裁剪与相机调用

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

 

  贴上部分代码:

 

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


 

//调用相机Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("SDCard/1.jpg")));startActivityForResult(intent, 2);


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

 

/** * 获取返回的相片 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){if (resultCode == 0)return;if (requestCode == 2)//调用系统裁剪  {File picture = new File("SDCard/1.jpg");                 startPhotoZoom(Uri.fromFile(picture)); } else if (requestCode == PHOTO_CODE)//得到裁剪后的图片{try{BitmapFactory.Options options = new BitmapFactory.Options();options.inSampleSize = 2;Bitmap bitmap = BitmapFactory.decodeFile("SDCard/1.jpg", options);if (bitmap != null)//保存图片{mCacheBitmap = bitmap;FileOutputStream fos = null;fos = new FileOutputStream("SDCard/1.jpg");mCacheBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);}} catch (Exception e){// TODO: handle exception}}super.onActivityResult(requestCode, resultCode, data);}/** * 裁剪图片 * @param uri */    public void startPhotoZoom(Uri uri) {             Intent intent = new Intent("com.android.camera.action.CROP");             intent.setDataAndType(uri, "image/*");intent.putExtra("crop", "true");// crop=true 有这句才能出来最后的裁剪页面.intent.putExtra("aspectX", 5);// 这两项为裁剪框的比例.intent.putExtra("aspectY", 4);// x:y=1:2intent.putExtra("output", Uri.fromFile(new File("SDCard/1.jpg")));intent.putExtra("outputFormat", "JPEG");//返回格式           startActivityForResult(intent, PHOTO_CODE);     } 


 

热点排行