2015-12-10 3 views
0

Я создал библиотеку выбора изображений, в которой пользователь может выбрать несколько изображений для загрузки на сервер. Я столкнулся с проблемой, то есть мне нужно сжать выбранные изображения, не теряя качество изображения, как в популярном приложении. Facebook/Whatsapp и т. Д. Поддерживались изображения с высоким качеством, но меньший размер. Я следил за документом official, но на самом деле он не удовлетворяет мне. Если вы загружаете размер меньше изображений, я могу быстро его загрузить в пользовательский интерфейс.Сжатие изображения без потери качества андроида?

Любые предложения/рекомендации приветствуются.

ответ

0

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

  int width = YourImageView.getWidth(); 
      int height = YourImageView.getHeight(); 

      Bitmap bitmap = Bitmap.createBitmap((int)width, (int)height, Bitmap.Config.ARGB_8888); 
      float originalWidth = selectedBitmap.getWidth(), originalHeight = selectedBitmap.getHeight(); 
      Canvas canvas = new Canvas(bitmap); 
      float scale = width/originalWidth; 
      float xTranslation = 0.0f, yTranslation = (height - originalHeight * scale)/2.0f; 
      Matrix transformation = new Matrix(); 
      transformation.postTranslate(xTranslation, yTranslation); 
      transformation.preScale(scale, scale); 
      Paint paint = new Paint(); 
      paint.setFilterBitmap(true); 
      canvas.drawBitmap(selectedBitmap, transformation, paint);