欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android --- 从相册中选择图片或者拍着选择图片遇到的问题

发布时间:2025/3/21 Android 71 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android --- 从相册中选择图片或者拍着选择图片遇到的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.从相册选择的图片会存储到 data 里面,而相机拍照的图片不会存储到 data 里面

2.由于从相册选择的图片会存储到 data 里面,而相机拍照的图片不会存储到 data 里面,所以在获取图片资源进行回显的方式不同,请看一下详细代码:(一定要创建文件 createFileName())

// 选择是在相册中选还是拍照 private void changeHeadIcon() {final CharSequence[] items = { "相册", "拍照" };AlertDialog dlg = new AlertDialog.Builder(AddActiActivity.this).setTitle("选择图片").setItems(items, new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int item) {// 这里 item 是根据选择的方式,if (item == 0) { // 相册createFileName();Intent intent = new Intent(Intent.ACTION_PICK);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(currentImageFile));intent.setType("image/*");startActivityForResult(intent, PHOTO_REQUEST_GALLERY);} else {// 相机createFileName();if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 判断SD卡状态:SD卡正常挂载Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//通过intent调用照相机照相intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(currentImageFile));startActivityForResult(intent, PHOTO_REQUEST_CAMERA );} else {Toast.makeText(AddActiActivity.this, "未找到存储卡,无法存储照片!",Toast.LENGTH_SHORT).show();}}}}).create();dlg.show(); } // 选择相册图片后的文件名 public void createFileName() {File dir = new File(Environment.getExternalStorageDirectory(),"pictures");if(dir.exists()) {dir.mkdirs();//在根路径下建子目录,子目录名是"pictures"}currentImageFile = new File(dir,System.currentTimeMillis() + ".jpeg"); }//在图库中选择图片之后回传的数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == PHOTO_REQUEST_GALLERY) { // 相册if (data != null) {//将数据添加到数据集合中adapter.addData(data.getData().toString());}}else if (requestCode == PHOTO_REQUEST_CAMERA) { // 相机if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//将数据添加到数据集合中adapter.addData(currentImageFile.toString());} else {Toast.makeText(AddActiActivity.this, "未找到存储卡,无法存储照片!",Toast.LENGTH_SHORT).show();}}}

总结

以上是生活随笔为你收集整理的Android --- 从相册中选择图片或者拍着选择图片遇到的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。