类似微信图片选择器-MultiImageSelector

在项目中,我们经常会遇到这样的需求,就是手机手机图片的选择,包括拍照。按照原生的方法实现当然也很简单,但是如果要优化一下,做个类似微信的图片选择器的话,如果不想自己慢慢写的话,也可以参考下别人开源的类库,先来看看MultiImageSelector类库的效果图:
效果图
效果
效果
首先把 multi-image-selector 作为你的项目依赖添加到工程中.
在你的 AndroidManifest.xml 文件中添加权限 android.permission.READ_EXTERNAL_STORAGE 在你的 AndroidManifest.xml 文件中添加权限 android.permission.WRITE_EXTERNAL_STORAGE . 别忘了同时在 AndroidManifest.xml 中声明 MultiImageSelectorActivity 这个Activity.

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

代码中调用,例如:

Intent intent = new Intent(mContext, MultiImageSelectorActivity.class);
// 是否显示调用相机拍照
intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);
// 最大图片选择数量
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);
// 设置模式 (支持 单选/MultiImageSelectorActivity.MODE_SINGLE 或者 多选/MultiImageSelectorActivity.MODE_MULTI)
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);
// 默认选择图片,回填选项(支持String ArrayList)
intent.putStringArrayListExtra(MultiImageSelectorActivity.EXTRA_DEFAULT_SELECTED_LIST, defaultDataArray);
startActivityForResult(intent, REQUEST_IMAGE);

在你的 onActivityResult 方法中处理结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQUEST_IMAGE){
        if(resultCode == RESULT_OK){
            // 获取返回的图片列表
            List path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
            // 处理你自己的逻辑 ....
        }
    }
}

欢迎初学android开发的同学加我的新手群:145186993

你可能感兴趣的:(android开发)