diff --git a/README.md b/README.md
index 59d330b48..65c01e91b 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
-1. Include the library as local library project.
+1. Include the library as a local library project.
```
allprojects {
@@ -25,9 +25,9 @@
```
``` implementation 'com.github.yalantis:ucrop:2.2.3' ``` - lightweight general solution
-
+
``` implementation 'com.github.yalantis:ucrop:2.2.3-native' ``` - get power of the native code to preserve image quality (+ about 1.5 MB to an apk size)
-
+
2. Add UCropActivity into your AndroidManifest.xml
```
@@ -73,15 +73,15 @@ If you want to let your users choose crop ratio dynamically, just do not call `w
uCrop builder class has method `withOptions(UCrop.Options options)` which extends library configurations.
-Currently you can change:
+Currently, you can change:
* image compression format (e.g. PNG, JPEG, WEBP), compression
* image compression quality [0 - 100]. PNG which is lossless, will ignore the quality setting.
* whether all gestures are enabled simultaneously
- * maximum size for Bitmap that is decoded from source Uri and used within crop view. If you want to override default behaviour.
+ * maximum size for Bitmap that is decoded from source Uri and used within crop view. If you want to override the default behaviour.
* toggle whether to show crop frame/guidelines
* setup color/width/count of crop frame/rows/columns
- * choose whether you want rectangle or oval crop area
+ * choose whether you want rectangle or oval(`options.setCircleDimmedLayer(true)`) crop area
* the UI colors (Toolbar, StatusBar, active widget state)
* and more...
@@ -90,20 +90,29 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
```java
new UCropInitializer().setOkHttpClient(client);
```
-
+
# Compatibility
-
+
* Library - Android ICS 4.0+ (API 14) (Android GINGERBREAD 2.3+ (API 10) for versions <= 1.3.2)
* Sample - Android ICS 4.0+ (API 14)
* CPU - armeabi armeabi-v7a x86 x86_64 arm64-v8a (for versions >= 2.1.2)
-
+
# Changelog
+
+### Version: 2.2.8
+
+* Merged pending pull requests with improvements and bugfixes
+* Update compileSdk and targetSdk versions up to 31
+* Add localizations
+* Fixed [#609](https://github.com/Yalantis/uCrop/issues/609)
+* Fixed [#794](https://github.com/Yalantis/uCrop/issues/794)
+
### Version: 2.2.3
- * Several fixes including [#445](https://github.com/Yalantis/uCrop/issues/445), [#465](https://github.com/Yalantis/uCrop/issues/465) and more!
- * Material design support
+ * Several fixes including [#445](https://github.com/Yalantis/uCrop/issues/445), [#465](https://github.com/Yalantis/uCrop/issues/465) and more!
+ * Material design support
* uCrop fragment as child fragment
- * Added Italian language
+ * Added the Italian language
### Version: 2.2.2
@@ -122,7 +131,7 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
### Version: 2.1
* Fixes issue with EXIF data (images taken on front camera with Samsung devices mostly) [#130](https://github.com/Yalantis/uCrop/issues/130) [#111](https://github.com/Yalantis/uCrop/issues/111)
- * Added API to set custom set of aspect ratio options for user. [#131](https://github.com/Yalantis/uCrop/issues/131)
+ * Added API to set custom set of aspect ratio options for the user. [#131](https://github.com/Yalantis/uCrop/issues/131)
* Added API to set all configs via UCrop.Options class. [#126](https://github.com/Yalantis/uCrop/issues/126)
* Added ABI x86_64 support. [#105](https://github.com/Yalantis/uCrop/issues/105)
@@ -131,7 +140,7 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
* Native image crop (able to crop high-resolution images, e.g. 16MP & 32MP images on Nexus 5X).
* WebP compression format is not supported at the moment (choose JPEG or PNG).
* Now library copies EXIF data to cropped image (size and orientation are updated).
-
+
### Version: 1.5
* Introduced "Freestyle" crop (you can resize crop rectangle by dragging it corners) [#32](https://github.com/Yalantis/uCrop/issues/32)
@@ -140,8 +149,8 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
### Version: 1.4
- * Introduced http(s) Uri support!
- * Image is cropped in background thread.
+ * Introduced HTTP(s) Uri support!
+ * Image is cropped in a background thread.
* Showing loader while Bitmap is processed (both loading and cropping).
* Several bug fixes.
* Couple new things to configure.
@@ -149,12 +158,12 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
### Version: 1.3
- * Image is loaded in background thread. Better error-handling for image decoding.
+ * Image is loaded in a background thread. Better error-handling for image decoding.
* Improved EXIF data support (rotation and mirror).
* Small UI updates.
* Couple new things to configure.
-
- * Sample updated with possibility to choose custom aspect ratio.
+
+ * Sample updated with the possibility to choose custom aspect ratio.
### Version: 1.2
@@ -170,7 +179,7 @@ Since version 2.2.7 in case if you need to change transport protocol, setup time
### Let us know!
-We’d be really happy if you sent us links to your projects where you use our component. Just send an email to github@yalantis.com And do let us know if you have any questions or suggestion regarding the library.
+We’d be really happy if you sent us links to your projects where you use our component. Just send an email to github@yalantis.com And do let us know if you have any questions or suggestion regarding the library.
#### Apps using uCrop
diff --git a/build.gradle b/build.gradle
index 9bb4e6090..1a4d907ab 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ buildscript {
}
repositories {
- jcenter()
+ mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
@@ -28,7 +28,7 @@ allprojects {
group = GROUP
repositories {
- jcenter()
+ mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
diff --git a/gradle.properties b/gradle.properties
index e5909cdc9..1278a05e1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,8 +17,8 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
-VERSION_NAME=2.2.5-non-native
-VERSION_CODE=25
+VERSION_NAME=2.2.8-native
+VERSION_CODE=26
GROUP=com.yalantis
POM_DESCRIPTION=Android Library for cropping images
diff --git a/sample/build.gradle b/sample/build.gradle
index cfde5de5c..95fb140fe 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 29
- buildToolsVersion '28.0.3'
+ compileSdkVersion 31
+ buildToolsVersion '30.0.3'
defaultConfig {
applicationId "com.yalantis.ucrop.sample"
minSdkVersion 14
- targetSdkVersion 29
+ targetSdkVersion 31
versionCode 13
versionName "1.2.4"
}
diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml
index e19e943fe..414a1dcd0 100644
--- a/sample/src/main/AndroidManifest.xml
+++ b/sample/src/main/AndroidManifest.xml
@@ -24,7 +24,8 @@
+ android:screenOrientation="portrait"
+ android:exported="true">
diff --git a/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java
index 65069fb89..e3f4cf030 100644
--- a/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java
+++ b/sample/src/main/java/com/yalantis/ucrop/sample/SampleActivity.java
@@ -605,12 +605,14 @@ Tune everything (ノ◕ヮ◕)ノ*:・゚✧
options.setActiveControlsWidgetColor(ContextCompat.getColor(this, R.color.your_color_res));
// Aspect ratio options
- options.setAspectRatioOptions(1,
+ options.setAspectRatioOptions(2,
new AspectRatio("WOW", 1, 2),
new AspectRatio("MUCH", 3, 4),
new AspectRatio("RATIO", CropImageView.DEFAULT_ASPECT_RATIO, CropImageView.DEFAULT_ASPECT_RATIO),
new AspectRatio("SO", 16, 9),
new AspectRatio("ASPECT", 1, 1));
+ options.withAspectRatio(CropImageView.DEFAULT_ASPECT_RATIO, CropImageView.DEFAULT_ASPECT_RATIO);
+ options.useSourceImageAspectRatio();
*/
diff --git a/ucrop/build.gradle b/ucrop/build.gradle
index dfefc8ec6..88782b79d 100644
--- a/ucrop/build.gradle
+++ b/ucrop/build.gradle
@@ -2,14 +2,14 @@ apply plugin: 'com.android.library'
apply from: '../mavenpush.gradle'
android {
- compileSdkVersion 29
- buildToolsVersion '28.0.3'
+ compileSdkVersion 31
+ buildToolsVersion '30.0.2'
defaultConfig {
minSdkVersion 14
- targetSdkVersion 29
- versionCode 25
- versionName "2.2.5-non-native"
+ targetSdkVersion 31
+ versionCode 26
+ versionName "2.2.8-native"
vectorDrawables.useSupportLibrary = true
}
diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java b/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java
index 28deadaad..0b6dce23a 100644
--- a/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java
+++ b/ucrop/src/main/java/com/yalantis/ucrop/UCrop.java
@@ -487,9 +487,9 @@ public void setFreeStyleCropEnabled(boolean enabled) {
* @param aspectRatio - list of aspect ratio options that are available to user
*/
public void setAspectRatioOptions(int selectedByDefault, AspectRatio... aspectRatio) {
- if (selectedByDefault > aspectRatio.length) {
+ if (selectedByDefault >= aspectRatio.length) {
throw new IllegalArgumentException(String.format(Locale.US,
- "Index [selectedByDefault = %d] cannot be higher than aspect ratio options count [count = %d].",
+ "Index [selectedByDefault = %d] (0-based) cannot be higher or equal than aspect ratio options count [count = %d].",
selectedByDefault, aspectRatio.length));
}
mOptionBundle.putInt(EXTRA_ASPECT_RATIO_SELECTED_BY_DEFAULT, selectedByDefault);
diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java b/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java
index 03de03c77..96c4b7bd3 100644
--- a/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java
+++ b/ucrop/src/main/java/com/yalantis/ucrop/UCropActivity.java
@@ -255,20 +255,21 @@ private void processOptions(@NonNull Intent intent) {
mOverlayView.setCropGridStrokeWidth(intent.getIntExtra(UCrop.Options.EXTRA_CROP_GRID_STROKE_WIDTH, getResources().getDimensionPixelSize(R.dimen.ucrop_default_crop_grid_stoke_width)));
// Aspect ratio options
- float aspectRatioX = intent.getFloatExtra(UCrop.EXTRA_ASPECT_RATIO_X, 0);
- float aspectRatioY = intent.getFloatExtra(UCrop.EXTRA_ASPECT_RATIO_Y, 0);
+ float aspectRatioX = intent.getFloatExtra(UCrop.EXTRA_ASPECT_RATIO_X, -1);
+ float aspectRatioY = intent.getFloatExtra(UCrop.EXTRA_ASPECT_RATIO_Y, -1);
int aspectRationSelectedByDefault = intent.getIntExtra(UCrop.Options.EXTRA_ASPECT_RATIO_SELECTED_BY_DEFAULT, 0);
ArrayList aspectRatioList = intent.getParcelableArrayListExtra(UCrop.Options.EXTRA_ASPECT_RATIO_OPTIONS);
- if (aspectRatioX > 0 && aspectRatioY > 0) {
+ if (aspectRatioX >= 0 && aspectRatioY >= 0) {
if (mWrapperStateAspectRatio != null) {
mWrapperStateAspectRatio.setVisibility(View.GONE);
}
- mGestureCropImageView.setTargetAspectRatio(aspectRatioX / aspectRatioY);
+ float targetAspectRatio = aspectRatioX / aspectRatioY;
+ mGestureCropImageView.setTargetAspectRatio(Float.isNaN(targetAspectRatio) ? CropImageView.SOURCE_IMAGE_ASPECT_RATIO : targetAspectRatio);
} else if (aspectRatioList != null && aspectRationSelectedByDefault < aspectRatioList.size()) {
- mGestureCropImageView.setTargetAspectRatio(aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioX() /
- aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioY());
+ float targetAspectRatio = aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioX() / aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioY();
+ mGestureCropImageView.setTargetAspectRatio(Float.isNaN(targetAspectRatio) ? CropImageView.SOURCE_IMAGE_ASPECT_RATIO : targetAspectRatio);
} else {
mGestureCropImageView.setTargetAspectRatio(CropImageView.SOURCE_IMAGE_ASPECT_RATIO);
}
diff --git a/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java b/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java
index 3b8ea9b87..ab7950333 100644
--- a/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java
+++ b/ucrop/src/main/java/com/yalantis/ucrop/UCropFragment.java
@@ -236,20 +236,21 @@ private void processOptions(@NonNull Bundle bundle) {
mOverlayView.setCropGridStrokeWidth(bundle.getInt(UCrop.Options.EXTRA_CROP_GRID_STROKE_WIDTH, getResources().getDimensionPixelSize(R.dimen.ucrop_default_crop_grid_stoke_width)));
// Aspect ratio options
- float aspectRatioX = bundle.getFloat(UCrop.EXTRA_ASPECT_RATIO_X, 0);
- float aspectRatioY = bundle.getFloat(UCrop.EXTRA_ASPECT_RATIO_Y, 0);
+ float aspectRatioX = bundle.getFloat(UCrop.EXTRA_ASPECT_RATIO_X, -1);
+ float aspectRatioY = bundle.getFloat(UCrop.EXTRA_ASPECT_RATIO_Y, -1);
int aspectRationSelectedByDefault = bundle.getInt(UCrop.Options.EXTRA_ASPECT_RATIO_SELECTED_BY_DEFAULT, 0);
ArrayList aspectRatioList = bundle.getParcelableArrayList(UCrop.Options.EXTRA_ASPECT_RATIO_OPTIONS);
- if (aspectRatioX > 0 && aspectRatioY > 0) {
+ if (aspectRatioX >= 0 && aspectRatioY >= 0) {
if (mWrapperStateAspectRatio != null) {
mWrapperStateAspectRatio.setVisibility(View.GONE);
}
- mGestureCropImageView.setTargetAspectRatio(aspectRatioX / aspectRatioY);
+ float targetAspectRatio = aspectRatioX / aspectRatioY;
+ mGestureCropImageView.setTargetAspectRatio(Float.isNaN(targetAspectRatio) ? CropImageView.SOURCE_IMAGE_ASPECT_RATIO : targetAspectRatio);
} else if (aspectRatioList != null && aspectRationSelectedByDefault < aspectRatioList.size()) {
- mGestureCropImageView.setTargetAspectRatio(aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioX() /
- aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioY());
+ float targetAspectRatio = aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioX() / aspectRatioList.get(aspectRationSelectedByDefault).getAspectRatioY();
+ mGestureCropImageView.setTargetAspectRatio(Float.isNaN(targetAspectRatio) ? CropImageView.SOURCE_IMAGE_ASPECT_RATIO : targetAspectRatio);
} else {
mGestureCropImageView.setTargetAspectRatio(CropImageView.SOURCE_IMAGE_ASPECT_RATIO);
}
diff --git a/ucrop/src/main/java/com/yalantis/ucrop/view/GestureCropImageView.java b/ucrop/src/main/java/com/yalantis/ucrop/view/GestureCropImageView.java
index b0f3cff93..e3644e184 100644
--- a/ucrop/src/main/java/com/yalantis/ucrop/view/GestureCropImageView.java
+++ b/ucrop/src/main/java/com/yalantis/ucrop/view/GestureCropImageView.java
@@ -21,7 +21,7 @@ public class GestureCropImageView extends CropImageView {
private float mMidPntX, mMidPntY;
- private boolean mIsRotateEnabled = true, mIsScaleEnabled = true;
+ private boolean mIsRotateEnabled = true, mIsScaleEnabled = true, mIsGestureEnabled = true;
private int mDoubleTapScaleSteps = 5;
public GestureCropImageView(Context context) {
@@ -52,6 +52,14 @@ public boolean isRotateEnabled() {
return mIsRotateEnabled;
}
+ public void setGestureEnabled(boolean gestureEnabled) {
+ mIsGestureEnabled = gestureEnabled;
+ }
+
+ public boolean isGestureEnabled() {
+ return mIsGestureEnabled;
+ }
+
public void setDoubleTapScaleSteps(int doubleTapScaleSteps) {
mDoubleTapScaleSteps = doubleTapScaleSteps;
}
@@ -77,7 +85,9 @@ public boolean onTouchEvent(MotionEvent event) {
mMidPntY = (event.getY(0) + event.getY(1)) / 2;
}
- mGestureDetector.onTouchEvent(event);
+ if (mIsGestureEnabled) {
+ mGestureDetector.onTouchEvent(event);
+ }
if (mIsScaleEnabled) {
mScaleDetector.onTouchEvent(event);
diff --git a/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml b/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml
index 509d7b156..2c08c2285 100644
--- a/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml
+++ b/ucrop/src/main/res/drawable/ucrop_ic_rotate.xml
@@ -7,5 +7,5 @@
+ android:pathData="M 19.761,5.566 C 15.791825,0.49517195 7.1049248,0.96194642 3.7237612,6.4638227 -0.33837992,12.033745 3.3097107,20.843671 10.121424,21.908979 c 4.572019,1.06054 9.956288,-1.892196 11.2181,-6.246218 C 20.613349,15.378841 19.887175,15.09492 19.161,14.811 17.787681,18.760509 12.866024,20.703386 9.1288906,19.047063 5.9906393,17.775571 3.9999147,14.236171 4.5746701,10.893626 5.0470831,7.426033 8.1929546,4.5782223 11.692652,4.4629013 13.866935,4.33846 16.076584,5.2031434 17.571,6.791 c -0.89,0.4976667 -1.78,0.9953333 -2.67,1.493 2.321563,1.3826149 4.642896,2.765615 6.964,4.149 0.03752,-2.7019929 0.07452,-5.4039929 0.111,-8.106 -0.738333,0.413 -1.476667,0.826 -2.215,1.239 z" />
diff --git a/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml b/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml
index 55f7a3ff9..841dc96ea 100644
--- a/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml
+++ b/ucrop/src/main/res/drawable/ucrop_ic_rotate_unselected.xml
@@ -7,5 +7,5 @@
+ android:pathData="M 19.761,5.566 C 15.791825,0.49517195 7.1049248,0.96194642 3.7237612,6.4638227 -0.33837992,12.033745 3.3097107,20.843671 10.121424,21.908979 c 4.572019,1.06054 9.956288,-1.892196 11.2181,-6.246218 C 20.613349,15.378841 19.887175,15.09492 19.161,14.811 17.787681,18.760509 12.866024,20.703386 9.1288906,19.047063 5.9906393,17.775571 3.9999147,14.236171 4.5746701,10.893626 5.0470831,7.426033 8.1929546,4.5782223 11.692652,4.4629013 13.866935,4.33846 16.076584,5.2031434 17.571,6.791 c -0.89,0.4976667 -1.78,0.9953333 -2.67,1.493 2.321563,1.3826149 4.642896,2.765615 6.964,4.149 0.03752,-2.7019929 0.07452,-5.4039929 0.111,-8.106 -0.738333,0.413 -1.476667,0.826 -2.215,1.239 z" />
diff --git a/ucrop/src/main/res/values-de/strings.xml b/ucrop/src/main/res/values-de/strings.xml
index 481d25a57..8d81cea75 100644
--- a/ucrop/src/main/res/values-de/strings.xml
+++ b/ucrop/src/main/res/values-de/strings.xml
@@ -3,4 +3,8 @@
Foto editieren
Original
Zuschneiden
+
+ Rotieren
+ Skalieren
+ Zuschneiden
\ No newline at end of file
diff --git a/ucrop/src/main/res/values-fa/strings.xml b/ucrop/src/main/res/values-fa/strings.xml
new file mode 100644
index 000000000..f0c81a008
--- /dev/null
+++ b/ucrop/src/main/res/values-fa/strings.xml
@@ -0,0 +1,13 @@
+
+
+
+ اصلی
+ ویرایش عکس
+
+ برش
+
+ چرخش
+ اندازه
+ برش
+
+
diff --git a/ucrop/src/main/res/values-in/strings.xml b/ucrop/src/main/res/values-in/strings.xml
new file mode 100644
index 000000000..eddf03209
--- /dev/null
+++ b/ucrop/src/main/res/values-in/strings.xml
@@ -0,0 +1,12 @@
+
+
+ Asli
+ Edit Foto
+
+ Pangkas
+
+ Memutar
+ Skala
+ Pangkas
+
+
diff --git a/ucrop/src/main/res/values-nl/strings.xml b/ucrop/src/main/res/values-nl/strings.xml
index 4570a62f8..a9ca77d13 100644
--- a/ucrop/src/main/res/values-nl/strings.xml
+++ b/ucrop/src/main/res/values-nl/strings.xml
@@ -2,4 +2,8 @@
Origineel
Foto bewerken
Bijsnijden
+
+ Draaien
+ Schalen
+ Bijsnijden
diff --git a/ucrop/src/main/res/values-pt/strings.xml b/ucrop/src/main/res/values-pt/strings.xml
new file mode 100644
index 000000000..1e98d1d0c
--- /dev/null
+++ b/ucrop/src/main/res/values-pt/strings.xml
@@ -0,0 +1,12 @@
+
+
+ Original
+ Editar Foto
+
+ Cortar
+
+ Girar
+ Tamanho
+ Cortar
+
+
diff --git a/ucrop/src/main/res/values-ru/strings.xml b/ucrop/src/main/res/values-ru/strings.xml
new file mode 100644
index 000000000..7973c3c92
--- /dev/null
+++ b/ucrop/src/main/res/values-ru/strings.xml
@@ -0,0 +1,9 @@
+
+
+ Оригинал
+ Повернуть
+ Масштабировать
+ Обрезать
+ Обрезать
+ Редактировать фото
+
diff --git a/ucrop/src/main/res/values-th/strings.xml b/ucrop/src/main/res/values-th/strings.xml
new file mode 100644
index 000000000..add5b5ebe
--- /dev/null
+++ b/ucrop/src/main/res/values-th/strings.xml
@@ -0,0 +1,12 @@
+
+
+ เป็นต้นฉบับ
+ แก้ไขรูปภาพ
+
+ พืชผล
+
+ หมุน
+ ขนาด
+ พืชผล
+
+
diff --git a/ucrop/src/main/res/values-tr/strings.xml b/ucrop/src/main/res/values-tr/strings.xml
new file mode 100644
index 000000000..097261675
--- /dev/null
+++ b/ucrop/src/main/res/values-tr/strings.xml
@@ -0,0 +1,12 @@
+
+
+ Orijinal
+ Fotoğrafı Düzenle
+
+ Kırp
+
+ Döndürme
+ Ölçek
+ Kırp
+
+
diff --git a/ucrop/src/main/res/values-zh-rTW/strings.xml b/ucrop/src/main/res/values-zh-rTW/strings.xml
index f0abcc71e..c55eb6294 100644
--- a/ucrop/src/main/res/values-zh-rTW/strings.xml
+++ b/ucrop/src/main/res/values-zh-rTW/strings.xml
@@ -7,5 +7,8 @@
必須指定輸入以及輸出的 Uri
在你的 App 內覆寫顏色資源檔 (ucrop_color_toolbar_widget) 使 5.0 以前裝置正常運作
+ 旋轉
+ 縮放
+ 裁切
diff --git a/ucrop/src/main/res/values-zh/strings.xml b/ucrop/src/main/res/values-zh/strings.xml
index fb39928db..100ef14ba 100644
--- a/ucrop/src/main/res/values-zh/strings.xml
+++ b/ucrop/src/main/res/values-zh/strings.xml
@@ -4,5 +4,8 @@
裁剪
裁剪
+ 旋转
+ 缩放
+ 裁剪