@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { String sdStatus = Environment.getExternalStorageState(); if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用 Log.i("TestFile", "SD card is not avaiable/writeable right now."); return; } String name = new DateFormat().format("yyyyMMdd_hhmmss", Calendar.getInstance(Locale.CHINA)) + ".jpg"; Toast.makeText(this, name, Toast.LENGTH_LONG).show(); Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data"); // 获取相机返回的数据,并转换为Bitmap图片格式 FileOutputStream b = null; File file = new File("/sdcard/myImage/"); if (!file.exists()) file.mkdirs(); // 创建文件夹 String fileName = "/sdcard/myImage/" + name; File photofile = new File(fileName); if (!photofile.exists()) { try { photofile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { b = new FileOutputStream(photofile); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b); // 把数据写入文件 } catch (Exception e) { e.printStackTrace(); } finally { try { b.flush(); b.close(); } catch (IOException e) { e.printStackTrace(); } } // 动态的改变gridview中的一个Item的内容 bitmapList.set(currentIndex, bitmap); myGalleryAdapter.notifyDataSetChanged(); updatePhoto( Long.valueOf(phoneNumberToId.get(phoneNumber.get(currentIndex))), bitmapToBytes(bitmap)); // ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// // 将图片显示在ImageView里 Intent intent = new Intent(ContactActivity.this, ContactActivity.class); this.startActivity(intent); this.finish(); } }