我正试图将另一个活动的库中的3张图像插入到ArrayList
中作为滑块。
int[] images = {R.drawable.ic_baseline_event_24,R.drawable.ic_baseline_event_24,R.drawable.ic_baseline_event_24};
我想用R.id.image
替换R.drawable
,但我找不到任何解决方案。
获取图像的代码:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent,"Select image"),1);
使用这段代码从手机中选择多个图像
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, PICK_IMAGE_MULTIPLE);
现在,如果你100%确定用户只会选择多个图像,那么就没有必要进行检查,但以防万一,如果用户只选择一个图像,这样做是好的
内部onActivityResult如果用户选择了多个图像data.getData()
将返回null否则它将包含单个映像的Uri。
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_MULTIPLE && resultCode == RESULT_OK) {
if (data.getData() == null) {
//user selected multiple images
int i = data.getClipData().getItemCount();
int j = 0;
Uri[] imageUri = new Uri[i];
Bitmap[] bitmap = new Bitmap[i]
while (j < i) {
imageUri[j] = data.getClipData().getItemAt(j).getUri();
bitmap[j] = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri[i]);
j++;
}
}
else
{
//User only selected one image
}
}
}
使用此代码,您将获得一个位图数组。
注意:您可能需要用try-catch环绕位图。