我正在尝试从我的图库中获取图像并将其上传到服务器。我想允许用户从图库中选择多个图像。当我选择两个或更多图像时,效果非常好。但是,当我仅选择一张图像时,它会忽略它并且不返回任何内容。这是我的代码,当没有剪辑数据为空时,我正在打印消息
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 10 && resultCode == Activity.RESULT_OK) {
if(data!=null)
{
ClipData clipData = data.getClipData();
if (clipData != null) {
bitmaps_group=new Bitmap[clipData.getItemCount()];
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
Uri uri = item.getUri();
try {
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
bitmaps_group[i]=MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
} catch (IOException e) {
e.printStackTrace();
}
if(i==4)
i=clipData.getItemCount()+1;
}
new Encode_image().execute();
}
else
Toast.makeText(getActivity(),"error",Toast.LENGTH_SHORT).show();
}
}
}
这里我称之为打开画廊:
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("r1 clikcid");
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 10);
}
});
最佳答案
如果只选择了一张图像,则它不会像选择更多图像那样位于 ClipData
中。
相反,data.getData()
将是所选数据的 Uri
。
关于java - 选择一张图片而不是多张时出现android错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40472983/