Как обрезать изображение в Android?

Возможный дубликат:
Как обрезать проанализированное изображение в android?

У меня есть изображение в папке res / drawable, и я хотел бы обрезать (например, отрезать часть изображения) изображение при загрузке в ImageView. Однако я не уверен, как это сделать, любые предложения?

Из Bitmap.createBitmap : «Возвращает неизменяемое bitmap из указанного подмножества исходного растрового изображения. Новый растровый рисунок может быть тем же самым объектом, что и источник, или может быть сделана копия. Он инициализируется с той же плотностью, что и исходное bitmap. ”

Передайте ему bitmap и определите прямоугольник, из которого будет создано новое bitmap.

// Take 10 pixels off the bottom of a Bitmap Bitmap croppedBmp = Bitmap.createBitmap(originalBmp, 0, 0, originalBmp.getWidth(), originalBmp.getHeight()-10); 

Менеджер контактов Android EditContactActivity использует Intent("com.android.camera.action.CROP")

Это пример кода:

 Intent intent = new Intent("com.android.camera.action.CROP"); // this will open all images in the Galery intent.setDataAndType(photoUri, "image/*"); intent.putExtra("crop", "true"); // this defines the aspect ration intent.putExtra("aspectX", aspectY); intent.putExtra("aspectY", aspectX); // this defines the output bitmap size intent.putExtra("outputX", sizeX); intent.putExtra("outputY", xizeY); // true to return a Bitmap, false to directly save the cropped iamge intent.putExtra("return-data", false); //save output image in uri intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 

Попробуй это:

 ImageView ivPeakOver=(ImageView) findViewById(R.id.yourImageViewID); Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.yourImageID); int width=(int)(bmp.getWidth()*peakPercent/100); int height=bmp.getHeight(); Bitmap resizedbitmap=Bitmap.createBitmap(bmp,0,0, width, height); ivPeakOver.setImageBitmap(resizedbitmap); 

Из Документов:

 static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height) 

Возвращает неизменяемое bitmap из указанного подмножества исходного растрового изображения.

Если вы хотите равномерно обрезать внешнюю часть изображения, вы должны проверить атрибут ScaleType для ImageView: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

В частности, вас будет интересовать опция «centerCrop». Он отображает часть изображения, которое больше заданного размера.

Вот пример этого в XML-макете:

  
  int targetWidth = 100; int targetHeight = 100; RectF rectf = new RectF(0, 0, 100, 100);//was missing before update Bitmap targetBitmap = Bitmap.createBitmap( targetWidth, targetHeight,Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(targetBitmap); Path path = new Path(); path.addRect(rectf, Path.Direction.CW); canvas.clipPath(path); canvas.drawBitmap( sourceBitmap, new Rect(0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight()), new Rect(0, 0, targetWidth, targetHeight), null); ImageView imageView = (ImageView)findViewById(R.id.my_image_view); imageView.setImageBitmap(targetBitmap); 
  • Ошибка плагина: требуется плагин «Поддержка Android» отключен
  • Recyclerview Изменение элементов во время прокрутки
  • Android facebook applicationId не может быть нулевым
  • Как я могу получить рабочую вертикальную SeekBar в Android?
  • Может ли кто-нибудь объяснить, как TrafficStats работает с магией в ОС Android?
  • Как получить положение Touch в андроиде?
  • Android: как приостановить и возобновить таймер обратного отсчета?
  • Как получить несколько значков для запуска различных действий в одном приложении?
  • почему мы используем 10.0.2.2 для подключения к локальному веб-серверу вместо использования IP-адреса компьютера в Android-клиенте
  • Android Volley - BasicNetwork.performRequest: Неожиданный код ответа 400
  • Как разрешить пользователям проверять последнюю версию приложения внутри приложения?
  • Interesting Posts
    Давайте будем гением компьютера.