系統已經有的東西,如果我們沒有新的需求的話,直接調用是最直接的。下面講講調用系統相機拍照並儲存圖片和如何調用系統相簿的方法。首先看看調用系統相機的核心方法:Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(camera, 100);相機返回的資料通過下面的回調方法取得,並處理 複製代碼@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == CAMERA && resultCode == Activity.RESULT_OK && null != data){ Bundle bundle = data.getExtras(); //擷取相機返回的資料,並轉換為圖片格式 Bitmap bitmap = (Bitmap)bundle.get("data"); }}複製代碼下面是調用系統相簿並取得照片的方法:Intent picture = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(picture, 101);或者intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);((Activity) context).startActivityForResult(intent, 101);下面是相應的回調方法: 複製代碼@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 101 && resultCode == Activity.RESULT_OK && null != data){ Uri selectedImage = data.getData(); String[] filePathColumns={MediaStore.Images.Media.DATA}; Cursor c = this.getContentResolver().query(selectedImage, filePathColumns, null,null, null); c.moveToFirst(); int columnIndex = c.getColumnIndex(filePathColumns[0]); String picturePath= c.getString(columnIndex); c.close(); }}複製代碼或者 複製代碼@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case 101: Uri uri = data.getData(); Cursor cursor = this.getContentResolver().query(uri, null, null, null, null); cursor.moveToFirst(); String imgNo = cursor.getString(0); // 圖片編號 String imgPath = cursor.getString(1); // 圖片檔案路徑 String imgSize = cursor.getString(2); // 圖片大小 String imgName = cursor.getString(3); // 圖片檔案名稱 cursor.close(); Bitmap bitmap = BitmapFactory.decodeFile(imgPath); break; default: return; } }}