Android 点击按钮从 SD 卡选择图片并显示于 ImageView

在 Android 开发中,当用户需要从设备的 SD 卡中选择一张图片并将其显示在一个 `ImageView` 控件上时,可以使用以下步骤实现:
1. **获取文件路径**: 首先,需要获取到存储在 SD 卡上的图片的完整文件路径。这可以通过调用 `Environment.getExternalStorageDirectory()` 方法来获取外部存储的根目录,然后通过添加特定的子目录和文件名来构建文件的绝对路径。例如,假设用户的 SD 卡上有一个名为 "pictures" 的文件夹,其中包含一张名为 "myImage.jpg" 的图片:
```java
String imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/myImage.jpg";
```
2. **选择文件**: 接下来,需要让用户能够从 SD 卡上选择图片。这可以通过 `Intent.ACTION_PICK` 和 `MediaStore.Images.Media.EXTERNAL_CONTENT_URI` 来实现。首先创建一个意图来打开系统图库应用:
```java
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
```
然后启动该意图,让用户选择要显示的图片:
```java
startActivityForResult(intent, REQUEST_CODE_IMAGE);
```
3. **处理选择结果**: 当用户从图库中选择了一张图片后,应用会返回一个包含所选图片信息的 `Intent`。在 `onActivityResult` 方法中处理这个意图并获取到图片的 URI:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == REQUEST_CODE_IMAGE && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();

// 将选择的图像显示在 ImageView 中
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageURI(selectedImage);
}
}
```
4. **显示图片**: 最后,将所选图片的 URI 设置为 `ImageView` 的源。这样,该图片就会显示在应用的界面上了:
```java
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
```
rar 文件大小:799.37KB