Android调用相册显示图片
在Android开发中,我们经常需要调用相册来显示用户选取的图片。本文将介绍如何在Android应用中调用相册,并显示选取的图片。
调用相册
要调用相册,首先需要在AndroidManifest.xml文件中添加相应的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
然后,在需要调用相册的地方,可以通过Intent来启动相册应用:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
上面的代码创建了一个ACTION_PICK类型的Intent,并指定了图片的URI。然后通过startActivityForResult方法启动相册应用,并传递一个请求码(PICK_IMAGE_REQUEST)。
显示选取的图片
当用户选取了图片后,可以在onActivityResult方法中获取选取的图片并显示出来:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码首先检查requestCode和resultCode是否为预期值,然后从Intent中获取选取的图片的URI。接着使用MediaStore.Images.Media.getBitmap方法将URI转换为Bitmap,并将Bitmap显示在ImageView中。
示例
下面是一个完整的示例代码,演示了如何调用相册显示图片:
public class MainActivity extends AppCompatActivity {
private static final int PICK_IMAGE_REQUEST = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
<RelativeLayout xmlns:android="
xmlns:tools="
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择图片" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/button" />
</RelativeLayout>
总结
本文介绍了如何在Android应用中调用相册来显示用户选取的图片。通过添加相应的权限并使用Intent启动相册应用,然后在onActivityResult方法中获取选取的图片,并将其显示在ImageView中。希望本文对你理解和实践Android调用相册显示图片有所帮助。
甘特图
下图是一个使用相册调用和显示图片的甘特图:
gantt
title Android调用相册显示图片
section 调用相册
添加权限 : 2022-01-01, 1d
启动相册应用 : 2022-01-02, 1d
section 显示选取的图片
获取选取的图片 : 2022-01-03, 1d
将图片显示在ImageView中 : 2022-01-04, 1d