Runtime обрезка изображения в Android - PullRequest
2 голосов
/ 29 июля 2011

Я уже выбрал изображение с SD-карты в ImageView своей деятельности с помощью Intent.и теперь я хочу показать движущийся прямоугольник фиксированного размера, т.е. мы должны использовать жест и любую часть изображения, которую мы хотим, тогда мы можемОбрезать это. Как мы можем это сделать? Это действительно тяжело для меня?Пожалуйста, помогите мне в этом?

Обновление -> Мне удалось перенести прямоугольник, и у меня возникла проблема с обрезкой и сохранением выбранной детали. Как это сделать?

Ответы [ 2 ]

7 голосов
/ 29 июля 2011

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

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
        photoPickerIntent.setType("image/*");
        photoPickerIntent.putExtra("crop","true");
        photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempFile());
        photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
         startActivityForResult(photoPickerIntent, 1);

    }

       private Uri getTempFile() {
       if (isSDCARDMounted()) {
           String f;
           muri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),
                    "apple_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
       //File f = new File(Environment.getExternalStorageDirectory(),"titus1.jpg");
       try {
        f=muri.getPath();
       } catch (Exception e) {

       }
       return muri;
       } else {
       return null;
       }
      }
   private boolean isSDCARDMounted(){
       String status = Environment.getExternalStorageState();
       if (status.equals(Environment.MEDIA_MOUNTED))
       return true;
       return false;
       }
   protected void onActivityResult(int requestCode, int resultCode,
           Intent imageReturnedIntent) {
       super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

       switch (requestCode) {
       case 1:
           if (resultCode == RESULT_OK) {  
           String filePath= muri.getPath();
           Log.e("path", "filePath");
           Toast.makeText(this, filePath, Toast.LENGTH_LONG).show();

           Bitmap selectedImage =  BitmapFactory.decodeFile(filePath);
           image = (ImageView)findViewById(R.id.image);
           image.setImageBitmap(selectedImage);


        }
        }
    }
1 голос
/ 29 июля 2011

В этом блоге рассказывается о выборе и обрезке изображения в Android , надеюсь, это поможет.

...