2014-04-01 171 views
-1

我希望能夠縮放位圖並保持縱橫比相同。縮放位圖並保持縱橫比

我不需要任何的尺寸設定到一定規模, 我知道inSampleSize不會爲負數的工作,我想 的東西,如果它這樣做,就像這一點。

我試過使用BitmapFactory.Options():inScaled,inTargetDensity和inDensity ,但尺寸保持不變。我不能一直使用它們。

我想將它縮放到1X或2X,我可以得到任何結果的寬度和高度。我真的很喜歡它在大約1.5倍的地方 ,大小不是一倍。

謝謝!

+0

'它的規模高達1X'意味着沒有比例在所有...看看這個例子:http://developer.android。 COM /訓練/顯示的位圖/負載bitmap.html –

回答

1

通常,當你解碼一個位圖時,你縮減了比例,所以你不會碰到OOM。 inSampleSize請求解碼器對原始圖像進行二次採樣,返回一個較小的圖像以節省內存。

如果你想獲得的位圖來覆蓋你可以設置的ImageView的scaleType整個視圖來決定要如何擴展它:

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

這裏是如何加載鏈接萬一位圖,你需要它: http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

1

到處找一些代碼示例 和嘗試一些事情之後,這個工作得非常好:

Matrix matrix = new Matrix(); 
matrix.postScale(1.5f, 1.5f); 

iWidth = bitmap.getWidth(); 
iHeight = bitmap.getHeight(); 

Bitmap resizedBitmap = Bitmap.createBitmap(
    bitmap, 0, 0, iWidth, iHeight, matrix, false); 

然後我用 'resizedBitmap' 在我的onDraw():

canvas.drawBitmap(resizedBitmap, 
    scrollRect, 
    displayRect, 
    null); 
相關問題