This is an Android project. It shows a DialogFragment with Camera or Gallery options. The user can choose from which provider wants to pick an image.
allprojects { repositories { maven { url "https://jitpack.io" } } }dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url 'https://jitpack.io' } } }Step #2. Add the dependency (See latest release).
dependencies { implementation 'com.github.jrvansuita:PickImage:+' }The use of this library can cause INSTALL_FAILED_CONFLICTING_PROVIDER if you skip this step. Update your AndroidManifest.xml with this exact provider declaration below.
<manifest ...> <application ...> <provider android:name="com.vansuita.pickimage.provider.PickImageFileProvider" android:authorities="${applicationId}.com.vansuita.pickimage.provider" android:exported="false" android:grantUriPermissions="true" tools:replace="android:authorities"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/picker_provider_paths" /> </provider> </application> </manifest> PickImageDialog.build(new PickSetup()).show(this);@Override public void onPickResult(PickResult r) { if (r.getError() == null) { //If you want the Uri. //Mandatory to refresh image from Uri. //getImageView().setImageURI(null); //Setting the real returned image. //getImageView().setImageURI(r.getUri()); //If you want the Bitmap. getImageView().setImageBitmap(r.getBitmap()); //Image path //r.getPath(); } else { //Handle possible errors //TODO: do what you have to do with r.getError(); Toast.makeText(this, r.getError().getMessage(), Toast.LENGTH_LONG).show(); } }PickImageDialog.build(new PickSetup()) .setOnPickResult(new IPickResult() { @Override public void onPickResult(PickResult r) { //TODO: do what you have to... } }) .setOnPickCancel(new IPickCancel() { @Override public void onCancelClick() { //TODO: do what you have to if user clicked cancel } }).show(getSupportFragmentManager());PickSetup setup = new PickSetup() .setTitle(yourText) .setTitleColor(yourColor) .setBackgroundColor(yourColor) .setProgressText(yourText) .setProgressTextColor(yourColor) .setCancelText(yourText) .setCancelTextColor(yourColor) .setButtonTextColor(yourColor) .setDimAmount(yourFloat) .setFlip(true) .setMaxSize .setPickTypes(EPickType.GALLERY, EPickType.CAMERA) .setCameraButtonText(yourText) .setGalleryButtonText(yourText) .setIconGravity(Gravity.LEFT) .setButtonOrientation(LinearLayoutCompat.VERTICAL) .setSystemDialog(false) .setGalleryIcon(yourIcon) .setCameraIcon(yourIcon) .setGalleryChooserTitle(yourText) .setCameraChooserTitle(yourText); /*... and more to come. */If you want to write your own button click event, just use IPickClick listener like in the example below. You may want to take a look at the sample app.
PickImageDialog.build(setup) .setOnClick(new IPickClick() { @Override public void onGalleryClick() { Toast.makeText(SampleActivity.this, "Gallery Click!", Toast.LENGTH_LONG).show(); } @Override public void onCameraClick() { Toast.makeText(SampleActivity.this, "Camera Click!", Toast.LENGTH_LONG).show(); } }).show(this);PickImageDialog dialog = PickImageDialog.build(...); dialog.dismiss();new PickSetup().setWidth(600).setHeight(800);You can tell the setup to pick video instead of photo! (default option if you don't mention is to pick Image)
new PickSetup().setVideo(true);You can take a look at the sample app located on this project.












