sandrios / sandriosCamera

Easy integration of camera for image and video capturing with Image Picker.
MIT License
187 stars 54 forks source link
android camera image-crop video-recording

DEPRECATED

8

sandriosCamera

sandrios studios Android Arsenal Build Status API Download

Camera Library for Android

sandrios camera allows developers to integrate image and video capturing without dealing with the complicated camera APIs.

It includes image picker interface inside the cameraview enabling the user to access recent media from inside the camera module.

Download

You can download an aar from GitHub's releases page.

Or use Gradle:

repositories {
   jcenter()
}

dependencies {
  implementation 'com.sandrios.android:sandriosCamera:1.2.6'
}

Or Maven:

<dependency>
  <groupId>com.sandrios.android</groupId>
  <artifactId>sandriosCamera</artifactId>
  <version>1.2.6</version>
  <type>pom</type>
</dependency>

If you are planning to include the library as a module, then you will have to upgrade to Android Studio 3.0

How do I use Sandrios Camera?

Please check the sample project included for more examples:

  private static final int CAPTURE_MEDIA = 368;

  // showImagePicker is boolean value: Default is true
  // setAutoRecord() to start recording the video automatically if media action is set to video.
  private void launchCamera() {
     SandriosCamera
        .with()
        .setShowPicker(true)
        .setShowPickerType(CameraConfiguration.VIDEO)
        .setVideoFileSize(20)
        .setMediaAction(CameraConfiguration.MEDIA_ACTION_BOTH)
        .enableImageCropping(true)
        .launchCamera(activity); 

        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == Activity.RESULT_OK
                    && requestCode == SandriosCamera.RESULT_CODE
                    && data != null) {
                if (data.getSerializableExtra(SandriosCamera.MEDIA) instanceof Media) {
                    Media media = (Media) data.getSerializableExtra(SandriosCamera.MEDIA);

                    Log.e("File", "" + media.getPath());
                    Log.e("Type", "" + media.getType());
                    Toast.makeText(getApplicationContext(), "Media captured.", Toast.LENGTH_SHORT).show();
                }
            }
        }

    }

ProGuard

Depending on your ProGuard (DexGuard) config and usage, you may need to include the following lines in your proguard.cfg


-keep public class com.sandrios.** { *; }

-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-keep public class * extends android.support.v4.view.ActionProvider {
    public <init>(android.content.Context);
}

-dontwarn android.support.**

#Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

#uCrop
-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }

-keepattributes *Annotation*
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}

-keep class com.google.**
-dontwarn com.google.**
-dontwarn sun.misc.**

Status

Comments/bugs/questions/pull requests are always welcome! Please use develop branch for pull requests.

Compatibility

Download

You may also find precompiled aar on the releases page.

Getting Help

To report a specific problem or feature request, open a new issue on Github. For questions, suggestions, or anything else -- github@sandrios.com

Thanks

Author

sandrios studios - @sandrios on GitHub

License

MIT. See the LICENSE file for details.