Android 仿微信多张图片选择器

1、在build.gradle中dependencies下添加依赖

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

2、完整activity代码

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_IMAGE3 = 5;
    private ArrayList<String> strings =new ArrayList<>();
    private static final String[] authBaseArr = {
            Manifest.permission.CAMERA,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };
    private static final int authBaseRequestCode = 1;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initNavi();//权限方法
        imageView = (ImageView)findViewById(R.id.testimage);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                MultiImageSelector.create(MainActivity.this)
                        .showCamera(true) // 是否显示相机. 默认为显示
                .count(9) // 最大选择图片数量, 默认为9. 只有在选择模式为多选时有效
                        .single() // 单选模式
                    .multi() // 多选模式, 默认模式;
                    .origin(strings) // 默认已选择图片. 只有在选择模式为多选时有效
                        .start(MainActivity.this, REQUEST_IMAGE3);
            }
        });
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {

                case 5:
                    if (requestCode == REQUEST_IMAGE3) {
                        if (resultCode == RESULT_OK) {
//                            List<String> pathImage = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
                            strings = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);

                        }
                    }
                    break;
            }
        }
    }


    private boolean hasBasePhoneAuth() {
        PackageManager pm = getPackageManager();
        for (String auth : authBaseArr) {
            if (pm.checkPermission(auth, getPackageName()) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
        return true;
    }

    private void initNavi() {

        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        builder.detectFileUriExposure();
        // 申请权限
        if (android.os.Build.VERSION.SDK_INT >= 23) {
            if (!hasBasePhoneAuth()) {
                this.requestPermissions(authBaseArr, authBaseRequestCode);
                return;
            }
        }
    }


}

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/82115774