2013-05-27 26 views
1

我試圖使用位圖工廠選項inScaled,inDensity,inTargetDensity縮放位圖。例如,如果我的位圖大小爲960 X 600,我想要放大到1440 X 900的大小。所以我將denisty設置爲2,targetdensity設置爲3. 返回的問題位圖大小與返回的位圖大小相同首先decodeByteArray函數。位圖不按照密度因子進行縮放。我的代碼中有什麼問題?使用BitmapFactory選項的Android位圖縮放比例

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
BitmapFactory.decodeByteArray(imageData, 0, size, options); 
int bmpWidth = options.outWidth; 
int bmpHeight = options.outHeight; 

options.inDensity = 2; 
options.inTargetDensity = 3; 
options.inPurgeable = true; 
options.inInputShareable = true; 
options.inScaled = true; 
options.inJustDecodeBounds = false; 

Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0, size, options); 
int scaledBmpWidth = bitmap.getWidth(); 
int scaledBmpHeight = bitmap.getHeight(); 

回答

-1

設置生成的位圖的outWidth和outHeight。

options.outWidth = bmpWidth * factor; 
options.outHeight = bmpHeight * factor; 
+0

它沒有按照你的方法工作 – Keerthi

+1

'options.out *'變量/屬性是在'options.inJustDecodeBounds'設置爲'true'時設置的。這樣你就可以獲得圖像的寬度,高度和MIME類型,而無需實際加載到內存中。 – croc