2013-05-14 74 views
0

我已經有了一個Bitmaps的負載,我現在試圖根據屏幕大小來縮放,我這樣做的方式是將當前設備屏幕大小除以我的測試手機大小,因爲所有圖像是根據該屏幕製作的。Android postScale不按比例縮放

我使用的函數是下面

public Bitmap resizeBitmap(Bitmap b){ 
     int width = b.getWidth(); 
     int height = b.getHeight(); 
     Matrix max = new Matrix(); 

     max.postScale(Vars.screenWidthMulti, Vars.screenHeightMulti); 
     Bitmap resizedBitmap = Bitmap.createBitmap(b, 0, 0, width, height, max, false); 
     return resizedBitmap; 
} 

screenWidthMulti和screenHeightMulti是通過將當前的屏幕尺寸與浮點值變得相同我的測試設備屏幕。現在這部分工作正常。 如果我使用1024/552屏幕尺寸的設備,我的設備是960/540,我得到的縮放值是1.06666667,寬度是1.02222223,高度是1.02222223。

現在的問題是,當我postScale它與這些值不符合我的預期。例如,放入與我的測試設備大小相同的背景圖像,然後輸出的位圖大小爲683乘368,這對我來說沒有任何意義!我已經嘗試過preScale和setScale,但是這並不會改變。

有沒有其他的方式可能會更容易,實際工作還是隻是我不明白這一點?

編輯:我試着在setScale中放入一個2f的值,結果很奇怪,540 * 2竟然是720,我無法得到我的頭。

回答

0

我figued了這一點,以該比例因子乘以1.5,怪異,但它的工作原理。

0

您剛剛創建的矩陣,所以你並不需要一個崗位或預分頻,只需使用setScale:

Matrix max = new Matrix(); 
max.setScale(Vars.screenWidthMulti, Vars.screenHeightMulti); 
+0

我現在測試它,即使絲毫沒有改變。感謝您盡力幫助。 –