2012-03-06 159 views
5

下面的代碼調整位圖大小並保持寬高比。 我想知道是否有更有效的調整大小的方法,因爲我的想法是我正在編寫android API中已有的代碼。調整位圖大小

private Bitmap resizeImage(Bitmap bitmap, int newSize){ 
    int width = bitmap.getWidth(); 
    int height = bitmap.getHeight(); 

    int newWidth = 0; 
    int newHeight = 0; 

    if(width > height){ 
     newWidth = newSize; 
     newHeight = (newSize * height)/width; 
    } else if(width < height){ 
     newHeight = newSize; 
     newWidth = (newSize * width)/height; 
    } else if (width == height){ 
     newHeight = newSize; 
     newWidth = newSize; 
    } 

    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    Matrix matrix = new Matrix(); 
    matrix.postScale(scaleWidth, scaleHeight); 

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
      width, height, matrix, true); 

    return resizedBitmap; 
} 

回答

0

我真的不這麼認爲,我幾乎做了同樣的方式爲你,並得到了來自Android開發者頁面的想法...

0

取決於你如何使用圖像。如果您只想在視圖中顯示位圖,只需調用myImageView.setImageBitmap(bitmap)並讓框架調整它的大小。但如果你關心記憶,首先進行縮放可能是一個好方法。