public void reasonAdd(View v) { final String [] strs=new String[]{"拍照","相册"}; AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("照片"); builder.setItems(strs, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //拍照可以用两种方法来实现 //1.调用系统相机 2.自定义相机 if (which==0) { Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,1); } //调用系统相册 if (which==1) { Intent intent=new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("p_w_picpath/*"); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 80); intent.putExtra("outputY", 80); intent.putExtra("return-data", true); startActivityForResult(intent, 0); } } }); builder.show(); } // 写一个方法来实现相机 @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)) { Log.i("TestFile", "SD card is not avaiable right now"); return; } String name= Calendar.getInstance(Locale.CANADA)+".jpg"; Bundle bundle=data.getExtras(); FileOutputStream b=null; // 实现设置图片的大小,然后显示 Intent intent1=new Intent("com.android.camera.actioin.CROP"); intent1.putExtra("crop","true"); intent1.putExtra("outputX",250); intent1.putExtra("outputY", 250); intent1.putExtra("aspectX",1); intent1.putExtra("aspectY", 1); Bitmap source= (Bitmap) bundle.get("data"); file=new File("/sdcard/myp_w_picpath/"); file.mkdir(); String Filename="/sdcard/myp_w_picpath/"+name; try { b=new FileOutputStream(Filename); source.compress(Bitmap.CompressFormat.JPEG,100,b); b.flush(); b.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } leave_iv_icon.setImageBitmap(source); icon=source; }else if(resultCode==0) { Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data"); leave_iv_icon.setImageBitmap(cameraBitmap); icon=cameraBitmap; } }