android 照片多选,Android: 关于系统相册多选图片的问题
最近在做畢設(shè),想在調(diào)用系統(tǒng)相冊的時候直接返回多張圖片的地址。我本意是想用盡量簡單的方法來解決這個問題,不需要剪裁啊什么的功能,只要可以多選就好。可是百度搜出來的方案基本上全部是自己寫一個相冊或者調(diào)用第三方的相冊。這并不符合我的本意。最后我在谷歌搜到了一個只需要幾行便可以解決在系統(tǒng)相冊選取多張圖片的辦法。此辦法最低需要API 18. 補(bǔ)充說明一句,此方法不止可以多選圖片,其它的文件類型也是可以的,方法同圖片。
參考:
https://stackoverflow.com/questions/31002388/android-intent-extra-allow-multiple-allows-only-single-picking
https://developer.android.com/guide/components/intents-common#Storage
具體操作:
首先在調(diào)用的界面為Intent添加EXTRA_ALLOW_MULTIPLE參數(shù)。
mContentView.findViewById(R.id.btn_send_image).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// Allow user to pick an image from Gallery or other
// registered apps
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"), REQUEST_CODE_IMAGE);
}
});
然后在onActivityResult()處理收到的結(jié)果。
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// User has picked an image. Transfer it to group owner i.e peer using
// FileTransferService.
Uri uri;
ListfileList = new ArrayList<>();
if (requestCode==REQUEST_CODE_IMAGE && data != null){
ClipData imageNames = data.getClipData();
if (imageNames != null){
for (int i=0; i
注意一點(diǎn),getData()和getClipData()返回的類型是不一樣的,如果返回的多張圖片的地址,必須用getClipData()來處理。此時getData()返回的是null。getClipData()返回的類型可以理解為getData()返回類型的list。具體操作如圖。
我的項(xiàng)目地址為https://github.com/no-10/WiFiDirect
具體的代碼位置在https://github.com/no-10/WiFiDirect/blob/master/app/src/main/java/com/example/android/wifidirect/DeviceDetailFragment.java
想在實(shí)戰(zhàn)項(xiàng)目中參考的可以參考一下。
總結(jié)
以上是生活随笔為你收集整理的android 照片多选,Android: 关于系统相册多选图片的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 市场招聘需求减弱 招聘平台Indeed宣
- 下一篇: android 补签控件,问道手游安卓1