0
我有一個已經解碼的位圖,我想暫時在繪製在畫布上之前進行縮放。所以解碼文件和設置大小是不可能的。我想保留現有位圖的大小,並在將其繪製在畫布上之前將其縮小爲較小。這是可行的嗎?如何在android中縮放已經存在的位圖?
使用Matrix postScale(sx,sy,px,py)可以正確縮放它,但不能正確定位它。而且,canvas.drawBitmap沒有選擇矩陣和我所能看到的位置。
有什麼建議嗎?
我有一個已經解碼的位圖,我想暫時在繪製在畫布上之前進行縮放。所以解碼文件和設置大小是不可能的。我想保留現有位圖的大小,並在將其繪製在畫布上之前將其縮小爲較小。這是可行的嗎?如何在android中縮放已經存在的位圖?
使用Matrix postScale(sx,sy,px,py)可以正確縮放它,但不能正確定位它。而且,canvas.drawBitmap沒有選擇矩陣和我所能看到的位置。
有什麼建議嗎?
下面是代碼:
public static Bitmap scaleBitmap(Bitmap bitmap, int width, int height) {
final int bitmapWidth = bitmap.getWidth();
final int bitmapHeight = bitmap.getHeight();
final float scale = Math.min((float) width/(float) bitmapWidth,
(float) height/(float) bitmapHeight);
final int scaledWidth = (int) (bitmapWidth * scale);
final int scaledHeight = (int) (bitmapHeight * scale);
final Bitmap decoded = Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);
final Canvas canvas = new Canvas(decoded);
return decoded;
}
請注意:傳位圖縮放和它的新高度和寬度。
完美的工作,謝謝! :) –
我可以在現有的位圖上繪製這個位圖嗎?如果是,如何?如果沒有可能的解決方案是什麼? – Shrikant