Android选择相册图片并显示功能实现教程

2 下载量 160 浏览量 更新于2024-09-01 收藏 68KB PDF 举报
"这篇文章主要讲解了如何在Android应用中实现在相册中选取图片并将其显示在ImageView上。文中提供了一个具体的代码实例,包括所需的权限、Intent调用相册、处理返回结果以及显示图片的步骤。" 在Android开发中,为了让用户能够从设备的相册中选择图片并显示在应用内,开发者需要执行以下关键步骤: 1. 请求存储权限: 在Android 6.0(API级别23)及以上版本,应用需要在运行时请求权限。在本例中,我们需要`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`权限来访问用户的相册。可以使用`ActivityCompat.checkSelfPermission()`检查权限,如果未授予,则使用`ActivityCompat.requestPermissions()`请求。 2. 启动相册Intent: 使用`Intent`启动系统相册应用,让用户选择一张图片。代码中定义了一个常量`REQUEST_PICK_IMAGE`作为请求码,用于识别返回的结果。 ```java Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, REQUEST_PICK_IMAGE); ``` 3. 处理返回结果: 在`onActivityResult()`方法中接收用户从相册选择图片后的结果。通过`data.getData()`获取选中图片的Uri,然后读取图片。 ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_PICK_IMAGE && resultCode == Activity.RESULT_OK && data != null) { Uri selectedImage = data.getData(); // ... } } ``` 4. 读取图片: 使用`BitmapFactory.decodeStream()`或`ContentResolver`从Uri读取图片。这个过程可能需要处理缩放或内存管理,防止内存溢出。 ```java InputStream is = getContentResolver().openInputStream(selectedImage); Bitmap bitmap = BitmapFactory.decodeStream(is); is.close(); ``` 5. 显示图片: 将获取到的Bitmap设置给ImageView。 ```java ImageView imageView = findViewById(R.id.show_image); imageView.setImageBitmap(bitmap); ``` 总结来说,实现Android选择相册图片并显示的功能,需要确保拥有读写外部存储的权限,启动一个用于选择图片的Intent,处理返回结果,从Uri读取图片并将其显示在ImageView组件上。整个过程中,要注意内存管理和权限请求的适配,以确保应用能在不同版本的Android系统上正常工作。