2013-03-05 3 views
25

Я хочу сделать обрезку изображения. Я нашел некоторые полезные, но как-то не хватает темных областей, которые не выбраны, поэтому мне интересно, кто-нибудь знает, как это сделать? или привести меня в правильное направление? В онлайн-учебнике, который я нашел, показано, что будет затемнять выбранную область, но когда я его использую, это не будет. Пожалуйста, помогите мне поблагодарить много и извините за мою неудачную команду по английскому языку.Обрезать изображение в android

Ссылки на учебное пособие, которое я использую.

Crop image tutorial 1

Crop Image tutorial 2

Я хочу, чтобы это было что-то вроде этого.

I want it be something like this

editButton.setOnClickListener(new Button.OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent goEdit; 
      goEdit = new Intent(PreviewActivity.this, CropImage.class); 
      goEdit.putExtra("image-path", path); 
      goEdit.putExtra("scale", true); 
      goEdit.putExtra("fileName", nameFromPath); 
      //finish(); 
      checkEdit = true; 
      startActivityForResult(goEdit,0); 

     } 
}); 

EDIT Я использую эту кнопку слушателя для вызова в файл cropImage, вызвав к классу CropImage активности. Это пользовательский настрой, а не функция обрезки внутри андроида, но я думаю, что это его копия, чтобы она поддерживала все версии, но когда я звоню в нее, выбранная область не будет ярче, и я не знаю, где проблема, может ли кто-нибудь мне навестить? Спасибо Это библиотека, которую я использую drioid4you crop image

+1

Пожалуйста, вы можете разместить код, который вы пробовали? А также, описывайте, что происходит, когда вы пытаетесь это сделать? Вы получаете сообщение об ошибке любого типа? – Jodes

+0

Я имею в виду, что я не получил сообщение об ошибке. Я просто понятия не имею, как сделать выделенную область ярче, а невыделенная область темнее, чтобы показать различия. – user1235085

+0

Проверьте [этот вопрос] [1] для альтернативной библиотеки, которую я предложил там. [1]: http://stackoverflow.com/questions/12758425/how-to-set-the-output-image-use-com-android-camera-action-crop/ – hcpl

ответ

41

Можете ли вы использовать функциональные возможности по умолчанию для android Crop?

Вот мой код

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 here 
     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(this, errorMessage, Toast.LENGTH_SHORT); 
     toast.show(); 
    } 
} 

заявляют:

final int PIC_CROP = 1; 

на вершине.

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

@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); 
     } 
    } 
} 

Это довольно легко для меня, чтобы реализовать, а также показывает осветлять участки.

+0

Привет, я пробую ур код, но он еще не показывает nv темный регион на моем телефоне :(Интересно, если это из-за моего манифеста или версии телефона? – user1235085

+0

какая версия вы используя? –

+0

current samsung s3 4.1.2 – user1235085

1

надеюсь, что у вас все хорошо. вы можете использовать мой код для обрезки изображения. Вам просто нужно сделать класс и использовать этот класс в своих классах XMl и java. Crop image. вы можете обрезать выбранное изображение в круг и квадрат во многих вариантах. надеюсь, что он будет работать для вас. Потому что это полностью управляемо для вас, и вы можете изменить его в соответствии с вами.

удовольствие от своей работы :)

+0

добавьте элементы 'R.styleable ....'. –

+0

да, конечно .. скоро обновится –

0

Я нашел действительно прохладное библиотеку, попробовать это. Это действительно гладкий и простой в использовании.

https://github.com/TakuSemba/CropMe

+0

, но не вручную значения x и y изменяются в любое время, поэтому любая другая библиотека разрабатывается, а затем объявляет ... –

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