2012-10-20 202 views
0

我已經通過使用OnDraw方法在畫布上繪製矩形創建了一個地圖。這在三星s2上完美工作,但是當我在s3中安裝它時,畫布看起來太小..我該怎麼辦?畫布佈局不能正常工作

我已經使用表面視圖繪製矩形。

回答

0

Galaxy S2是hdpi,S3是xhdpi,所以這可能是爲什麼矩形看起來更小一些。我建議覆蓋onMeasure,然後根據畫布的當前高度和寬度設置矩形的高度和寬度。

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
int parentViewWidth = MeasureSpec.getSize(widthMeasureSpec); 
int parentViewHeight = MeasureSpec.getSize(heightMeasureSpec); 
// ... take into account the parent's size as needed ... 
super.onMeasure(
    MeasureSpec.makeMeasureSpec(newWidth, MeasureSpec.EXACTLY), 
    MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.EXACTLY)); 

}

編輯:剛剛意識到你說你使用SurfaceView繪製你的矩形,而不是查看。在onDraw中,只需獲取畫布的當前高度和寬度,然後根據這些尺寸繪製矩形,而不是爲矩形硬編碼固定尺寸。希望這可以幫助

+0

我已經實現了一個單獨的數據庫與矩形座標因爲我正在做一個最短路徑分析。所以我不能改變任何原因的矩形座標。 我有我檢索矩形座標的Web服務。它工作完美的S2 ..但不是在S3 :(我不知道如何解決它! – Ruby