public class MainActivity4 extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
imageView = findViewById(R.id.image);
Button resourcesBtn = findViewById(R.id.button2);
resourcesBtn.setOnClickListener((v)->{
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent,2);
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 2:
if (resultCode == Activity.RESULT_OK && data!=null){
try {
Bitmap bitmap = getBitmapFromUri(data.getData());
imageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
break;
}
}
private Bitmap getBitmapFromUri(Uri uri) throws FileNotFoundException {
ParcelFileDescriptor parcelFileDescriptor = getContentResolver().openFileDescriptor(uri, "r");
return BitmapFactory.decodeFileDescriptor(parcelFileDescriptor.getFileDescriptor());
}
}
这样点击按钮就能跳转到相册界面,选择图片后会显示在imageView上
在相册选择完返回到Activity的是Uri,使用内容解析器等顺着Uri拿图片(Bitmap)显示到imageView上