我有一个扩展了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 ... –