2012-05-08 4 views
2

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

ответ

0

Чтобы изменить масштаб изображения, потому что у меня была ограниченная высота изображения, я использовал код ниже, чтобы изменить его размер. Но я не хотел изменять размер bmp, если он не был выше моего требования к высоте, надеюсь, что вы сможете его использовать. (Используется поток, чтобы получить мои фотографии)

   if (stream != null) { 
       img = BitmapFactory.decodeStream(stream, null, o); 
       float imgHeight = (float) img.getHeight(); 
       Display display = ((WindowManager) ctx.getSystemService(
         Context.WINDOW_SERVICE)).getDefaultDisplay(); 
       float displayHeight = (float) (display.getHeight()-50); 
       if(imgHeight>displayHeight) { 
        float scaleFactor = displayHeight/imgHeight; 
        img = Bitmap.createScaledBitmap(img, (int)(img.getWidth()*scaleFactor), (int)(imgHeight*scaleFactor), false); 
       } 
       saveBitmap(new File(getSdPath() + location), img); 
      } 
+0

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

+0

Думаю, что я видел что-то об этом здесь, в stackoverflow, но сам не играл с этой частью. –

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