有时候我会们遇到需要裁剪图片的时候,比如处理头像的时候,Android提供了方便的办法来处理。

核心方法如下:

/** *  裁剪图片 * @param uri * @param outPutX 裁剪后的宽 * @param outputY 裁剪后的高 * @param requestCode 返回的标识值 */public void cropImage(Uri uri,int outPutX, int outputY,int requestCode){Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri,"image/*");intent.putExtra("crop","true");intent.putExtra("aspectX",12);intent.putExtra("aspectY",5);intent.putExtra("outputX",outPutX);intent.putExtra("outputY",outputY);intent.putExtra("outputFormat","JPEG");intent.putExtra("noFaceDatection",true);intent.putExtra("return-data",true);startActivityForResult(intent,requestCode);}

需要注意的是: aspectX aspectY 这两个值是宽和高的比值,如果你的目标图片是 100 * 100 那两个值都是1 ,你在裁剪时看到的框框是正方形的。

如果你比例像本例中的是12:5 的那么就是长方形的。


如何调用:

Uri uri = null;if(data != null){uri = data.getData();}else {String fileName = getSharedPreferences("temp",ShopEdit.MODE_MULTI_PROCESS).getString("tempName","");uri = Uri.fromFile(new File(DuParm.XxipPATH,fileName));}cropImage(uri,720,300,CROP_PICTURE);


本例中必须要用到的就是:

@Overrideprotected void onActivityResult(int requestCode,int resultCode,Intent data){super.onActivityResult(requestCode,resultCode,data);MyLog.i(TAG,"requestCode=" + requestCode + "; resultCode=" + resultCode);

调用方法是的uri = data.getData() 的data的来源就是重写这个方法中的。

本人的具体顺序是:

1. 点击事件事

2. 弹出对框(选择相册或相机)

3. 取得图片后带参数返回调用他的Activity ,Activity中即使用onActivityResult接收返回参数

4. 根据返回的data取得图片,打开新的Activity 调用裁剪图片的功能对图片进行裁剪

5. 再一次执行到了 onActivityResult 这次返回了裁剪后的图片,

6.至于图片怎么处理,就是你自己的事了。

(完)


更多相关文章

  1. Android(安卓)matrix 控制图片的旋转、缩放、移动
  2. android拍照与读取相册
  3. Android(安卓)报错:Caused by: android.os.FileUriExposedExcepti
  4. Android内容提供者源码
  5. 修改android系统和watchdog的延时
  6. android 单元测试
  7. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
  8. [Android]在App中使用相机
  9. 【安卓笔记】android客户端与服务端交互的三种方式

随机推荐

  1. android两种方式设置EditText不弹出软键
  2. Android(安卓)多渠道定制化打包
  3. android中gravity和layoutgravity的区别
  4. 《第一行代码(第二版)》学习(二)
  5. Android(安卓)3.0 r1 API中文文档(106)
  6. Android源代码编译脚本
  7. Android(安卓)安全机制
  8. Android(安卓)常用控件(四)
  9. android 数据持久化简述
  10. Android(安卓)IPC 通讯机制源码分析