2012-05-08 65 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的一些信息,但是我自己并没有在那个部分玩过。 –