我要求图库应用中的图片:
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
我正在阅读这样的结果:
ClipData clipData = data.getClipData();
Uri[] uris = new Uri[clipData.getItemCount()];
for (int i = 0; i < uris.length; i++) {
uris[i] = clipData.getItemAt(i).getUri();
}
我注意到,当我使用Google相册作为图库时,结果的反转顺序与我在Google相册中选择的结果相反。 UI。
这是故意的,一致的还是记录在哪里?
答案 0 :(得分:1)
首先,ACTION_PICK
是错误的Intent
操作。如果您阅读the documentation for ACTION_PICK
,那就是从特定集合中挑选内容; MIME类型不是记录的输入值之一。 ACTION_GET_CONTENT
用于根据MIME类型选择内容。
其次,请注意EXTRA_ALLOW_MULTIPLE
is for use with ACTION_GET_CONTENT
and ACTION_OPEN_DOCUMENT
。因此,很少ACTION_PICK
个实现会尊重额外的。
第三,不要求Uri
请求返回的EXTRA_ALLOW_MULTIPLE
值按任何特定顺序排列。有数千种可能的应用程序会响应您的请求,他们可以按照他们希望的顺序向您发送结果。特别是,the documentation for EXTRA_ALLOW_MULTIPLE
不涉及订单。
如果订单在您的应用中很重要,请构建您自己的用户界面以确认订单。提供方便的一键式&#34;反向&#34;选项,除了可能拖放以允许任意更改。毕竟,在内容选择期间,用户可能没有意识到该顺序很重要,因此即使用户选择内容的顺序也不是用户的实际期望顺序。