我有一個擴展了View的類。我的視圖中的畫布設置爲全屏尺寸,而不是查看尺寸...爲什麼?
儘管視圖被設置爲具有特定尺寸的RelativeLayout的子視圖,但View的畫布報告它是1280寬(與設備一樣寬)。
我想了解我需要做什麼來使畫布受其視圖的尺寸的限制(如常識所要求的那樣)。
好奇我俯瞰什麼......這裏是相關的代碼片段...
dv = new DrawView(this, getWindowManager());
dv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//this wrapper is 500x500
((RelativeLayout)findViewById(R.id.drawWrapper)).addView(dv);
L.log("DRAWVIEW WIDTH = " + dv.getWidth()); //this reports 0... why?
內drawView函數...
@Override
public void onDraw(Canvas canvas) {
L.log("CANVAS WIDTH ON DRAW = " + canvas.getWidth()); //this always reports 1280 on xoom
this.canvas = canvas;
drawElementsOntoCanvas(canvas, true, false);
...
}
是否有我忽視的東西或者是視圖中的畫布始終是整個屏幕的寬度和高度?
的XML爲相對佈局:
<RelativeLayout
android:id="@+id/drawWrapper"
android:layout_width="500px"
android:layout_height="500px"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dip"
android:clipChildren="true"
android:background="@drawable/cut_out_frame"
/>
我認爲你需要看看onMeasure,你有沒有在Android Dev上看到自定義視圖的文檔? – Neil
直到佈局完成後,dv.getWidth()纔會爲零。請參閱http://developer.android.com/reference/android/view/ViewTreeObserver.html。請爲RelativeLayout顯示XML。 – Simon
@Simon,在編輯中加入xml ... –