//1.调用系统 隐式调用 public void takeP(View view) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //拍照时如果没有指定拍照保存位置 只保存缩略图 startActivityForResult(intent,1); } // 2.调用系统 设置保存路径 就会保存到指定路径的 实际大小图形 public void takeP1(View view) { file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"111.png"); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //会有手机适配问题 拍照的相片还没有保存好 就要开始读取 会发生崩溃 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(intent,2); } // 3.通过保存图片地址到数据库中 再从数据库中 读取图片地址显示(推荐使用方法) public void takeP2(View view) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); ContentValues values = new ContentValues(); values.put(MediaStore.Images.ImageColumns.DISPLAY_NAME,"heheheh.png"); //查数据库之后返回 uri Uri insert = getContentResolver() .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); intent.putExtra(MediaStore.EXTRA_OUTPUT, insert); startActivityForResult(intent,3); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1){ Bitmap bitmap = (Bitmap) data.getExtras().get("data"); image.setImageBitmap(bitmap); Log.i("TAG", "onActivityResult: -------kuan--" +bitmap.getWidth()+"::gao::"+bitmap.getHeight()); }else if (requestCode == 2){ image.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath())); }else if (requestCode == 3){ //查询多媒体数据库表 中图片数据 找到图片数据 进行排序 返回cursor Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.ImageColumns.DATA}, null, null, MediaStore.Images.ImageColumns.DATE_ADDED + " DESC"); //时间排序 从新到旧 if (cursor!=null){ if (cursor.moveToFirst()) {//第一条就是想要数据 image.setImageBitmap(BitmapFactory.decodeFile(cursor.getString(0))); } } cursor.close(); } }