2016-02-15 50 views
0

我遇到一個小問題,我的android代碼。這是我第一次使用畫布,我想設置一個圖像,但保持某種類型的寬高比。Android - 設置爲可繪製到畫布,但保持長寬比

這就是我現在正在做的事情,它將圖像完全映射到畫布上。它將圖像寬度高度設置爲畫布寬度高度。

Drawable drawable = image; // gets the image 

drawable.SetBounds(0, 0, canvasWidth, canvasHeight); 

drawable.Draw(canvas); 

這在某些設備上運行良好,但是當設備很大時,拉伸非常糟糕。我想以這樣的方式設置邊界以保持寬高比。如果畫布的寬高比不是相同的寬高比,它將嘗試以縱橫比填充畫布,但可能會在x或y軸上留出一些空間。

int imgWidth = 500; 
int imgHeight = 800; 

我要地圖基於這些值在畫布上的圖像,並根據需要伸展,但保持即使在畫布的一部分沒有填充此縱橫比。

這樣做的最好方法是什麼?

謝謝

回答