2014-07-14 3 views
0

я хочу обрезать фотографии, которые я взять с камеры, до сих пор я стараюсь делать это как это, но без успехаAndroid фото растениеводства из камеры

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       File f = new File(android.os.Environment 
         .getExternalStorageDirectory(), "temp.jpg"); 
       intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 

       intent.putExtra("crop", "true"); 
       intent.putExtra("aspectX", 1); 
       intent.putExtra("aspectY", 1); 
       intent.putExtra("outputX", 200); 
       intent.putExtra("outputY", 200); 

       getActivity().startActivityForResult(intent, REQUEST_CAMERA); 

это возможно сделать это без каких-либо 3-х библиотек деталей.? я проверил https://github.com/biokys/cropimage

но он не дал мне никаких результатов

if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 

      String path = data.getStringExtra(CropImage.IMAGE_PATH); 

      // if nothing received 
      if (path == null) { 

       return; 
      } 

      // cropped bitmap 
      Bitmap bitmap = BitmapFactory.decodeFile(path); 

      ((ImageView) findViewById(R.id.userpicture)).setImageBitmap(bitmap); 
     } 
+0

http://stackoverflow.com/questions/10776438/crop-an-image-when-selected-from-gallery-in-android –

ответ

0

является возможность сделать это без каких-либо 3-х библиотек деталей.?

Не надежно. Android does not have a CROPIntent.

я проверил https://github.com/biokys/cropimage но он не дал мне никаких результатов

Возможно, вы не интегрировать его должным образом. В дополнение к библиотекам, упомянутым в моем сообщении в блоге (связанном выше), the Android Arsenal has a few options.

0

попробовать этот

private void performCrop(Uri picUri) { 
     try { 

      Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
      // indicate image type and Uri 
      cropIntent.setDataAndType(picUri, "image/*"); 
      // set crop properties 
      cropIntent.putExtra("crop", "true"); 
      // indicate aspect of desired crop 
      cropIntent.putExtra("aspectX", 1); 
      cropIntent.putExtra("aspectY", 1); 
      // indicate output X and Y 
      cropIntent.putExtra("outputX", 128); 
      cropIntent.putExtra("outputY", 128); 
      // retrieve data on return 
      cropIntent.putExtra("return-data", true); 
      // start the activity - we handle returning in onActivityResult 
      startActivityForResult(cropIntent, PIC_CROP); 
     } 
     // respond to users whose devices do not support the crop action 
     catch (ActivityNotFoundException anfe) { 
      // display an error message 
      String errorMessage = "Whoops - your device doesn't support the crop action!"; 
      Toast toast = Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_SHORT); 
      toast.show(); 
     } 
    } 

провозглашают:

final int PIC_CROP = 1; 

на вершине.

В методе результата onActivity, WRIT следующий код:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == PIC_CROP) { 
     if (data != null) { 
      // get the returned data 
      Bundle extras = data.getExtras(); 
      // get the cropped bitmap 
      Bitmap selectedBitmap = extras.getParcelable("data"); 

      imgView.setImageBitmap(selectedBitmap); 
     } 
    } 

} 
Смежные вопросы