diff --git a/lib/src/main/java/com/soundcloud/android/crop/Crop.java b/lib/src/main/java/com/soundcloud/android/crop/Crop.java
index 564f5b52..0c89b646 100644
--- a/lib/src/main/java/com/soundcloud/android/crop/Crop.java
+++ b/lib/src/main/java/com/soundcloud/android/crop/Crop.java
@@ -26,6 +26,20 @@ interface Extra {
String MAX_X = "max_x";
String MAX_Y = "max_y";
String ERROR = "error";
+ String ACTION_BUTTONS_POSITION = "action_buttons_positions";
+ }
+
+ public enum ActionButtonsPosition {
+ TOP("TOP"), BOTTOM("BOTTOM");
+
+ private final String position;
+
+ ActionButtonsPosition(final String position) { this. position = position; }
+
+ @Override
+ public String toString() {
+ return position;
+ }
}
private Intent cropIntent;
@@ -79,6 +93,17 @@ public Crop withMaxSize(int width, int height) {
return this;
}
+ /**
+ * Set activity action buttons position: top or bottom
+ * This is optional function, ActionButtonsPosition.TOP is the default position of the buttons
+ *
+ * @param pos Enum with values: TOP, BOTTOM
+ */
+ public Crop setActionButtonsPosition(ActionButtonsPosition pos) {
+ cropIntent.putExtra(Extra.ACTION_BUTTONS_POSITION, pos.toString());
+ return this;
+ }
+
/**
* Send the crop Intent from an Activity
*
diff --git a/lib/src/main/java/com/soundcloud/android/crop/CropImageActivity.java b/lib/src/main/java/com/soundcloud/android/crop/CropImageActivity.java
index 97a0466a..340b8bf4 100644
--- a/lib/src/main/java/com/soundcloud/android/crop/CropImageActivity.java
+++ b/lib/src/main/java/com/soundcloud/android/crop/CropImageActivity.java
@@ -33,6 +33,8 @@
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.RelativeLayout;
+import android.widget.RelativeLayout.LayoutParams;
import java.io.IOException;
import java.io.InputStream;
@@ -126,6 +128,7 @@ private void loadInput() {
maxX = extras.getInt(Crop.Extra.MAX_X);
maxY = extras.getInt(Crop.Extra.MAX_Y);
saveUri = extras.getParcelable(MediaStore.EXTRA_OUTPUT);
+ getIntentActionButtonsPosition(extras.getString(Crop.Extra.ACTION_BUTTONS_POSITION));
}
sourceUri = intent.getData();
@@ -151,6 +154,48 @@ private void loadInput() {
}
}
+ private void getIntentActionButtonsPosition(String pos) {
+ Crop.ActionButtonsPosition actionButtonsPosition =
+ pos != null ? Crop.ActionButtonsPosition.valueOf(pos) : null;
+
+ if (actionButtonsPosition != null) {
+ switch (actionButtonsPosition) {
+ case TOP:
+ setActionButtonsPositionOnTop(true);
+ break;
+ case BOTTOM:
+ setActionButtonsPositionOnTop(false);
+ break;
+ }
+ } else {
+ setActionButtonsPositionOnTop(true);
+ }
+ }
+
+ private void setActionButtonsPositionOnTop(boolean onTop) {
+ final int disabled = 0;
+ final RelativeLayout actionButtonsLayout = (RelativeLayout) findViewById(R.id.action_buttons_layout);
+
+ final LayoutParams actionButtonsParams =
+ (RelativeLayout.LayoutParams) actionButtonsLayout.getLayoutParams();
+
+ final LayoutParams imageViewParams =
+ (RelativeLayout.LayoutParams) imageView.getLayoutParams();
+
+ if (onTop) {
+ actionButtonsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, disabled);
+ imageViewParams.addRule(RelativeLayout.ABOVE, disabled);
+ imageViewParams.addRule(RelativeLayout.BELOW, actionButtonsLayout.getId());
+ } else {
+ actionButtonsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
+ imageViewParams.addRule(RelativeLayout.BELOW, disabled);
+ imageViewParams.addRule(RelativeLayout.ABOVE, actionButtonsLayout.getId());
+ }
+
+ actionButtonsLayout.setLayoutParams(actionButtonsParams);
+ imageView.setLayoutParams(imageViewParams);
+ }
+
private int calculateBitmapSampleSize(Uri bitmapUri) throws IOException {
InputStream is = null;
BitmapFactory.Options options = new BitmapFactory.Options();
diff --git a/lib/src/main/res/layout/crop__activity_crop.xml b/lib/src/main/res/layout/crop__activity_crop.xml
index b42483d5..b6e86bf4 100644
--- a/lib/src/main/res/layout/crop__activity_crop.xml
+++ b/lib/src/main/res/layout/crop__activity_crop.xml
@@ -5,15 +5,22 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+
+
+
+
+ android:layout_below="@id/action_buttons_layout" />
\ No newline at end of file