Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yasharpm/InstaCropper
A View for cropping images that is similar to Instagram's crop which allows a range of aspect ratios instead of a solid ratio. Also an Activity for cropping is included.
https://github.com/yasharpm/InstaCropper
Last synced: 3 months ago
JSON representation
A View for cropping images that is similar to Instagram's crop which allows a range of aspect ratios instead of a solid ratio. Also an Activity for cropping is included.
- Host: GitHub
- URL: https://github.com/yasharpm/InstaCropper
- Owner: yasharpm
- Created: 2017-03-12T05:53:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-07T09:56:25.000Z (almost 3 years ago)
- Last Synced: 2024-06-29T04:06:08.003Z (4 months ago)
- Language: Java
- Homepage:
- Size: 134 KB
- Stars: 377
- Watchers: 11
- Forks: 44
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-github-android-ui - InstaCropper - 仿Instagram图片裁剪 (图片)
README
#### NOTICE: I build custom views "for free". Just send me a description of what you need and I will send it to you the next day! Email me at yasharpm[at]gmail[dot]com with the subject "CustomView request".
# InstaCropper
A View for cropping images that is similar to Instagram's crop. Also an Activity for cropping is included.![alt tag](https://cloud.githubusercontent.com/assets/4597931/23830368/724ddf70-071e-11e7-9d7e-65615be8d5e6.gif)
## Usage
Add the dependency:
```Groovy
dependencies {
implementation 'com.yashoid:instacropper:1.2.0'
}
```## How to use this library
Add `InstaCropperView` to your xml layout
```xml
```
InstaCropperView receives only Uri but any Uri is possible.
```java
mInstaCropper.setImageUri(imageUri);
```You can specify three size ratios for the crop. The narrowest allowed, the widest allowed and the ideal ratio. The View will adjust its size by the ideal ratio.
```java
mInstaCropper.setRatios(defaultRatio, minimumRatio, maximumRatio);
```The cropped image is returned in a callback. You can specify MeasureSpec to adjust the width and height of the returned Bitmap.
```java
mInstaCropper.crop(
View.MeasureSpec.makeMeasureSpec(1024, View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
new InstaCropperView.BitmapCallback() {@Override
public void onBitmapReady(Bitmap bitmap) {
// Do something.
}
}
);
```It is also possible to use the crop feature via an Intent call. There are various `getIntent()` methods defined on `InstaCropperActivity`. You will then receive the crop result in `data.getData()`.
```java
Intent intent = InstaCropperActivity.getIntent(context, srcUri, dstUri, maxWidth, outputQuality);
startActivityForResult(intent, REQUEST_CROP);
```Cropping of multiple images is also possible. Use `MultipleCropActivity.getIntent()` methods to access. If all the images are cropped you will receive `RESULT_OK` otherwise `RESULT_CANCELED`. `EXTRA_COUNT` will contain the number of images cropped.
```java
Intent intent = MultipleCropActivity.getIntent(context, srcUris, dstUris, maxWidth, maxHeight, aspectRatio);
startActivityForResult(intent, REQUEST_MULTIPLE_CROP);
```You can modify the crop Activity's apprearance by overriding the following resouce values:
```xml
Crop
Crop@android:color/white
@android:color/black
```