Commit 3fbe6fef by German Callejas

Añadido código para conocer el origen de la imagen y su orientacion, para poder…

Añadido código para conocer el origen de la imagen y su orientacion, para poder gestionar el recorte correctamente. (Sin finalizar recorte)
parent c584c7ed
...@@ -37,6 +37,11 @@ import com.yottacode.pictogram.tabletlibrary.cropper.util.PaintUtil; ...@@ -37,6 +37,11 @@ import com.yottacode.pictogram.tabletlibrary.cropper.util.PaintUtil;
public class CropImageView extends ImageView { public class CropImageView extends ImageView {
// Private Constants /////////////////////////////////////////////////////////////////////////// // Private Constants ///////////////////////////////////////////////////////////////////////////
private static final int CAMERA_PIC_REQUEST = 1;
private static final int GALLERY_PIC_REQUEST = 2;
private static final int VERTICAL_ORIENTATION = 200;
private static final int HORIZONTAL_ORIENTATION = 300;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private static final String TAG = CropImageView.class.getName(); private static final String TAG = CropImageView.class.getName();
...@@ -248,8 +253,10 @@ public class CropImageView extends ImageView { ...@@ -248,8 +253,10 @@ public class CropImageView extends ImageView {
* Gets the cropped image based on the current crop window. * Gets the cropped image based on the current crop window.
* *
* @return a new Bitmap representing the cropped image * @return a new Bitmap representing the cropped image
* @param origin
* @param orientation
*/ */
public Bitmap getCroppedImage() { public Bitmap getCroppedImage(int origin, int orientation) {
final Drawable drawable = this.getDrawable(); final Drawable drawable = this.getDrawable();
if (drawable == null || !(drawable instanceof BitmapDrawable)) { if (drawable == null || !(drawable instanceof BitmapDrawable)) {
return null; return null;
...@@ -264,8 +271,8 @@ public class CropImageView extends ImageView { ...@@ -264,8 +271,8 @@ public class CropImageView extends ImageView {
final float scaleY = matrixValues[Matrix.MSCALE_Y]; //==1 final float scaleY = matrixValues[Matrix.MSCALE_Y]; //==1
// Extract the translation values. // Extract the translation values.
final float transX = matrixValues[Matrix.MTRANS_X]; final float transX = (origin == CAMERA_PIC_REQUEST && orientation== HORIZONTAL_ORIENTATION ) ? matrixValues[Matrix.MTRANS_Y] : matrixValues[Matrix.MTRANS_X];
final float transY = matrixValues[Matrix.MTRANS_Y]; final float transY = (origin == CAMERA_PIC_REQUEST && orientation== HORIZONTAL_ORIENTATION ) ? matrixValues[Matrix.MTRANS_X] : matrixValues[Matrix.MTRANS_Y];
final Bitmap originalBitmap = ((BitmapDrawable) drawable).getBitmap(); final Bitmap originalBitmap = ((BitmapDrawable) drawable).getBitmap();
/*Log.i("DETALLES","ScaleX: "+scaleX + "- ScaleY: "+scaleY); /*Log.i("DETALLES","ScaleX: "+scaleX + "- ScaleY: "+scaleY);
......
...@@ -25,6 +25,8 @@ public class EditPictoActivity extends Activity { ...@@ -25,6 +25,8 @@ public class EditPictoActivity extends Activity {
public static final int EDIT_PICTO_REQUEST = 2288; public static final int EDIT_PICTO_REQUEST = 2288;
public static final String TRANSCRIPTION = "textPicto"; public static final String TRANSCRIPTION = "textPicto";
public static final String IMAGE_PICTO = "imagePicto"; public static final String IMAGE_PICTO = "imagePicto";
public static final String IMAGE_ORIGIN = "imageOrigin";
public static final String IMAGE_ORIENTATION = "imageOrientation";
// Activity Methods //////////////////////////////////////////////////////////////////////////// // Activity Methods ////////////////////////////////////////////////////////////////////////////
...@@ -47,6 +49,9 @@ public class EditPictoActivity extends Activity { ...@@ -47,6 +49,9 @@ public class EditPictoActivity extends Activity {
cropImageView.setGuidelines(2); cropImageView.setGuidelines(2);
cropImageView.setAspectRatio(1,1); cropImageView.setAspectRatio(1,1);
final int orientation = getIntent().getExtras().getInt(EditPictoActivity.IMAGE_ORIENTATION);
final int origin = getIntent().getExtras().getInt(EditPictoActivity.IMAGE_ORIGIN);
String legendText = getIntent().getExtras().getString(EditPictoActivity.TRANSCRIPTION); String legendText = getIntent().getExtras().getString(EditPictoActivity.TRANSCRIPTION);
if(legendText != null) { if(legendText != null) {
Log.i("DETALLES","Llega el intent al layout recortar, con texto: " + legendText); Log.i("DETALLES","Llega el intent al layout recortar, con texto: " + legendText);
...@@ -71,13 +76,14 @@ public class EditPictoActivity extends Activity { ...@@ -71,13 +76,14 @@ public class EditPictoActivity extends Activity {
okButton.setOnClickListener(new View.OnClickListener() { okButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
final Bitmap croppedImage = cropImageView.getCroppedImage(); final Bitmap croppedImage = cropImageView.getCroppedImage(origin,orientation);
//Escalar y guardarla al server //Escalar y guardarla al server
croppedImage.createScaledBitmap(croppedImage,96,96,true); Bitmap finalImage = null;
finalImage.createScaledBitmap(croppedImage,96,96,true);
Intent intent = getIntent(); Intent intent = getIntent();
intent.putExtra(EditPictoActivity.TRANSCRIPTION,legend.getText().toString()); intent.putExtra(EditPictoActivity.TRANSCRIPTION,legend.getText().toString());
Log.i("DETALLES","sale el intent al layout recortar, con texto: " + legend.getText().toString()); Log.i("DETALLES","sale el intent al layout recortar, con texto: " + legend.getText().toString());
cropImageView.setImageBitmap(croppedImage); cropImageView.setImageBitmap(finalImage);
setResult(RESULT_OK,intent); setResult(RESULT_OK,intent);
finish(); finish();
} }
......
...@@ -76,6 +76,9 @@ public class PictogramActivity extends Activity implements VocabularyTalk.iVocab ...@@ -76,6 +76,9 @@ public class PictogramActivity extends Activity implements VocabularyTalk.iVocab
private static final int CAMERA_PIC_REQUEST = 1; private static final int CAMERA_PIC_REQUEST = 1;
private static final int GALLERY_PIC_REQUEST = 2; private static final int GALLERY_PIC_REQUEST = 2;
private static final int VERTICAL_ORIENTATION = 200;
private static final int HORIZONTAL_ORIENTATION = 300;
private static final int MAX_WIDTH = 700; private static final int MAX_WIDTH = 700;
private static final int MAX_HEIGHT = 350; private static final int MAX_HEIGHT = 350;
...@@ -1098,7 +1101,7 @@ protected void showOnlyTape(boolean onlyTape) { ...@@ -1098,7 +1101,7 @@ protected void showOnlyTape(boolean onlyTape) {
case CAMERA_PIC_REQUEST: //Captura de foto case CAMERA_PIC_REQUEST: //Captura de foto
if (data != null && resultCode==RESULT_OK) { if (data != null && resultCode==RESULT_OK) {
imagen = (Bitmap) data.getExtras().get("data"); imagen = (Bitmap) data.getExtras().get("data");
this.launchActivity(imagen); this.launchActivity(imagen,CAMERA_PIC_REQUEST);
//Log.i("DETALLES", "Llega el intent del menú, con texto: " + legend); //Log.i("DETALLES", "Llega el intent del menú, con texto: " + legend);
} else { } else {
if(resultCode!=RESULT_OK) //Si no quieres la foto que has echado if(resultCode!=RESULT_OK) //Si no quieres la foto que has echado
...@@ -1122,7 +1125,7 @@ protected void showOnlyTape(boolean onlyTape) { ...@@ -1122,7 +1125,7 @@ protected void showOnlyTape(boolean onlyTape) {
imagen = BitmapFactory.decodeFile(filePath); imagen = BitmapFactory.decodeFile(filePath);
/** Tras echar foto llamar a la actividad de recortar y le paso la leyenda para si tiene anteriormente o null, y la imagen a recortar */ /** Tras echar foto llamar a la actividad de recortar y le paso la leyenda para si tiene anteriormente o null, y la imagen a recortar */
//-->GERMAN: legend != null ? legend : null es lo mismo que simplemente legend //-->GERMAN: legend != null ? legend : null es lo mismo que simplemente legend
this.launchActivity(imagen); this.launchActivity(imagen,GALLERY_PIC_REQUEST);
}else{ }else{
startActivity(new Intent(this, PictogramActivity.class)); startActivity(new Intent(this, PictogramActivity.class));
} }
...@@ -1138,9 +1141,11 @@ protected void showOnlyTape(boolean onlyTape) { ...@@ -1138,9 +1141,11 @@ protected void showOnlyTape(boolean onlyTape) {
/**Para cambiar la activity de PictogramActivity a EditPictoActivity /**Para cambiar la activity de PictogramActivity a EditPictoActivity
* @param image * @param image
*/ */
public void launchActivity(Bitmap image){ public void launchActivity(Bitmap image, int originImage){
Intent intent = new Intent(this, EditPictoActivity.class); Intent intent = new Intent(this, EditPictoActivity.class);
if(image!=null) { if(image!=null) {
float aspectFactor = 1; float aspectFactor = 1;
float bWidth = image.getWidth(); float bWidth = image.getWidth();
...@@ -1167,6 +1172,9 @@ protected void showOnlyTape(boolean onlyTape) { ...@@ -1167,6 +1172,9 @@ protected void showOnlyTape(boolean onlyTape) {
byte[] byteArray = stream.toByteArray(); byte[] byteArray = stream.toByteArray();
intent.putExtra(EditPictoActivity.IMAGE_PICTO, byteArray); intent.putExtra(EditPictoActivity.IMAGE_PICTO, byteArray);
intent.putExtra(EditPictoActivity.IMAGE_ORIGIN, originImage == CAMERA_PIC_REQUEST ? CAMERA_PIC_REQUEST : GALLERY_PIC_REQUEST);
intent.putExtra(EditPictoActivity.IMAGE_ORIENTATION, bWidth > bHeight ? HORIZONTAL_ORIENTATION : VERTICAL_ORIENTATION);
if(picto!=null) { if(picto!=null) {
intent.putExtra(EditPictoActivity.TRANSCRIPTION, picto.get_translation()); intent.putExtra(EditPictoActivity.TRANSCRIPTION, picto.get_translation());
picto = null; picto = null;
......
...@@ -64,14 +64,13 @@ ...@@ -64,14 +64,13 @@
android:orientation="horizontal" android:orientation="horizontal"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerInside" android:scaleType="centerInside"
android:layout_marginLeft="5dp"
android:maxWidth="700px"
android:maxHeight="350px"
android:layout_below="@+id/title" android:layout_below="@+id/title"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_marginTop="55dp"
android:minHeight="125dp" android:layout_gravity="center_horizontal"
android:layout_gravity="center_horizontal" /> android:maxHeight="350px"
android:maxWidth="700px" />
<EditText <EditText
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment