Android 从系统相册读取照片并展示——2个方法

星河之舟 2024-06-07 ⋅ 163 阅读

在开发Android应用程序时,我们经常需要从系统相册读取照片并在应用中展示。本博客将介绍两种方法来实现这一功能。

方法一:使用Intent选择照片

Android提供了一个用于选择照片的系统Intent:ACTION_PICK。我们可以使用该Intent来打开系统相册,然后让用户选择照片。

首先,在AndroidManifest.xml文件中添加读取外部存储权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

然后,在需要打开相册的地方,使用以下代码:

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);

在onActivityResult方法中,可以获取用户选择的照片的Uri,进而进行展示和处理:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CODE_PICK_IMAGE && resultCode == RESULT_OK && data != null) {
        Uri selectedImageUri = data.getData();
        // 根据Uri进行图片展示和处理
    }
}

方法二:使用第三方库

若想更加灵活地展示相册中的照片,并且可能需要实现更多功能(例如缩放、旋转、裁剪等),可以考虑使用第三方库。其中,GlidePicasso是比较受欢迎的图片加载库,它们都支持从Uri加载图片。

首先,在app/build.gradle文件中添加Glide或Picasso的依赖:

// 使用Glide
implementation 'com.github.bumptech.glide:glide:4.x.x'
annotationProcessor 'com.github.bumptech.glide:compiler:4.x.x'

// 使用Picasso
implementation 'com.squareup.picasso:picasso:2.x.x'

然后,在需要展示照片的地方,使用以下代码:

使用Glide加载图片:

Glide.with(context).load(selectedImageUri).into(imageView);

使用Picasso加载图片:

Picasso.get().load(selectedImageUri).into(imageView);

以上即为从系统相册读取照片并展示的两种方法。根据实际需求和个人喜好,你可以选择相应的方法来实现照片的展示功能。


全部评论: 0

    我有话说: