Android多图选择工具

作者: Wang_Yi | 来源:发表于2017-05-18 17:00 被阅读517次

    ImagePicker

    Android 图片选择工具,支持单选/多选/裁剪/预览/相机拍摄,图片加载可以自由选择Gilde、picasso、ImageLoader等工具,适配Android N。UI色彩来自App的colorPrimarycolorAccent

    Sample.apk






    添加依赖

       compile 'me.wangyi:imagepicker:+'
    

    使用

    1. 在AndroidManifest.xml中添加权限:
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    1. 在application节点下注册activity
        <activity android:name="me.wangyi.imagepicker.ui.ImagePickerActivity" />
        <activity android:name="me.wangyi.imagepicker.ui.ImagePreViewActivity" />
    

    3.实现自己的ImageLoder,在displayImage方法中可以使用项目中使用的图片加载工具来加载图片

        private class MyImageLoader implements ImagePicker.ImageLoader {
            public void displayImage(ImageView imageView, Image image) {
                Glide.with(imageView.getContext())
                        .load(image.getPath())
                        .dontAnimate()
                        .placeholder(R.drawable.place_holder)
                        .into(imageView);
            }
        }
    

    4.开始图片选择
    单选

        new ImagePicker()
                 .mode(ImagePicker.MODE_SINGLE_SELECT)
                 .cropEnable(true)//是否开启图片裁剪
                 .cropOutputX(400)//图片裁剪后保存的宽度
                 .cropOutputY(400)//图片裁剪后保存的高度
                 .imageLoader(new MyImageLoader())
                 .requestCode(REQUEST_PICK)
                 .start(this);
    

    多选

       new ImagePicker()
                .mode(ImagePicker.MODE_MULTI_SELECT)
                .imageLoader(new MyImageLoader())
                .selectLimit(selectLimit)//最多选择图片数量
                .requestCode(REQUEST_PICK)
                .start(this);
    

    5.在onActivityResult方法中接收返回的

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                if (requestCode == REQUEST_PICK) {
                    ArrayList<Image> imageList = data.getParcelableArrayListExtra(ImagePicker.EXTRA_IMAGE_LIST);
                    //是否使用原图
                    boolean fullImage = data.getBooleanExtra(ImagePicker.EXTRA_FULL_IMAGE, false);
                }
            }
        }
    

    注意事项

    ImagePicker的两个Activity的Theme必须有ActionBar,例如

        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    

    GitHub地址:https://github.com/wangyiwy/ImagePicker

    相关文章

      网友评论

      本文标题:Android多图选择工具

      本文链接:https://www.haomeiwen.com/subject/ksgsxxtx.html