在开发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进行图片展示和处理
}
}
方法二:使用第三方库
若想更加灵活地展示相册中的照片,并且可能需要实现更多功能(例如缩放、旋转、裁剪等),可以考虑使用第三方库。其中,Glide和Picasso是比较受欢迎的图片加载库,它们都支持从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);
以上即为从系统相册读取照片并展示的两种方法。根据实际需求和个人喜好,你可以选择相应的方法来实现照片的展示功能。
本文来自极简博客,作者:星河之舟,转载请注明原文链接:Android 从系统相册读取照片并展示——2个方法