2012-10-20 95 views
1

我創建了一個自定義視圖,它創建一個位圖,然後在onDraw()方法中顯示一個對象數據。Android自定義視圖和畫布大小

同樣在XML文件中,我已經使視圖水平滾動。

我的問題是在我從onDraw()方法繪製畫布上的所有數據後,如何增加視圖的大小以顯示所有數據。

即我希望視圖滾動,直到數據完成,而不是更多。

我確實顯示了最後一個項目的y座標。

目前我在XML文件中將視圖的寬度設置爲800dp,但對於某些對象,它會切斷部分數據。

感謝

+0

我也看了在構造函數中設置佈局參數,我應該在的onDraw做到這一點( ) 方法? – user557240

回答

3

可以重寫onMeasure()方法調整View大小:

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)); 
} 
+0

謝謝,我會盡力回家。 – user557240

+0

嗨,我試過實現它,但到目前爲止我還沒有運氣。我的自定義佈局被放在線性佈局下,當我把上面的代碼,我得到一個空白的屏幕。 – user557240

+0

另外這裏是我的XML佈局文件:http://pastebin.com/2Rh25805 – user557240