glsurfaceview的Android setHeight

时间:2011-11-15 18:27:29

标签: android height glsurfaceview

我想用自定义高度设置glsurfaceview的高度。 我希望宽度与高度相同。 使用android:layout_width =“fill_parent”。 我怎么做宽度=高度= width_of_the_screen?

非常感谢

1 个答案:

答案 0 :(得分:4)

您需要覆盖onMeasure并将setMeasuredDimension的两个参数设置为接收的宽度,如下所示:

class TouchSurfaceView extends GLSurfaceView {

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int width = View.MeasureSpec.getSize(widthMeasureSpec); 
    this.setMeasuredDimension(width, width);
}
...

布局如下:

...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:layout_gravity="top"
    >
    <se.company.test.TouchSurfaceView android:id="@+id/glSurface"
        android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
...