Android 拍照、從相冊獲取及裁剪的相關實現


  首先這些功能都是通過Intent去啟動系統的服務去實現的,所以自然就有相應的Action。相關Actiong如下:

  拍照——MediaStore.ACTION_IMAGE_CAPTURE ("android.media.action.IMAGE_CAPTURE")

  相冊——Intent.ACTION_GET_CONTENT("android.intent.action.GET_CONTENT" 同時要設置,intent.setType("image/*");)

  裁剪——"com.android.camera.action.CROP"(需要設置圖片來源 intent.setDataAndType(uri, "image/*");  

  而下面表格中的參數則是在發送Intent時,添加一些額外的數據約束實現以下額外的功能

附加選項 數據類型 描述
crop String 發送裁剪信號                               intent.putExtra("crop", "true");
aspectX int X方向上的比例                             intent.putExtra("aspectX", 1);
aspectY int Y方向上的比例                             intent.putExtra("aspectY", 1);
outputX int 裁剪區的寬                                  intent.putExtra("outputX", 240);
outputY int 裁剪區的高                                  intent.putExtra("outputX", 320);
scale boolean 是否保留比例                               intent.putExtra("scale", true);
return-data boolean 是否將數據保留在Bitmap中返回     intent.putExtra("return-data", true);
data Parcelable 相應的Bitmap數據                       intent.putExtra("data", imgaeUri);
circleCrop boolean 圓形裁剪區域                              intent.putExtra("circleCrop", true);
MediaStore.EXTRA_OUTPUT ("output") URI

將URI指向相應的file:///...           intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

outputFormat String 輸出格式                                    intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());  
noFaceDetection boolean 是否取消人臉識別功能                  intent.putExtra("noFaceDetection", true); 

 

  又因為這些操作都是需要結果返回的,所以都是使用startActivityForResult來進行Intent的發送,然后在本Activity進行接收處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM