android调用相册选择多张图片,MultiImageSelector的应用

问题:调用相册添加图片只能单选

解决:用了开源 MultiImageSelector 。下面就来说说它怎么用。就像下面图片一样,可以选择多张,这里我设置成了最多9张。

图片描述

1,设置依赖

implementation 'com.github.lovetuzitong:MultiImageSelector:1.2'

2,AndroidManifest.xml 中做好读写声明

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

这个activity就是我们打开相册的那个瀑布流图片界面。

<application>
   <activity
       android:configChanges="orientation|screenSize"
       android:name="me.nereo.multi_image_selector.MultiImageSelectorActivity" />
</application>

3, 自己项目中的插入图片点击控件事件方法。

也就是点击了以后,会启动这个方法,这里第三行就是选择选择模式,这里选了最多选9个图,用法可以多了解MultiImageSelector。

public void onClickInsertImage() {
        Intent intent = new Intent(this, MultiImageSelectorActivity.class);
        intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT,9);
        startActivityForResult(intent, REQUEST_CODE_CHOOSE);
    }

4,重写onActivityResult。

这里是List,也就是可以多张图片读取的,具体没有写,这里是伪代码,你处理自己逻辑的时候可以使用for循环,将里面的每个图片显示处理,在我的一篇 android调用相机,里面有显示图片的方法。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_IMAGE) {
            // 获取返回的图片列表(存放的是图片路径)
            List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
            // 处理你自己的逻辑 ....
            Log.d("tag", "" + path);
            tv.setText(""+path);
        }
    }

最后:我用到在编辑器里面调用相册,显示图片有两种方式:

1,Base64,小图片,数量少没事,但是手机动辄3M左右的图片就不适合,多了,输入会很卡。 2,就是直接读取图片的真实地址,当然涉及到编辑器的时候,要注意草稿保存。

最后,来个

赞 吧!!!