glsurfaceviewの高さをカスタム高さに設定したいと思います。 幅が高さと同じであることを希望します。 android:layout_width = "fill_parent" width = height = width_of_the_screenにする方法は?Android setHeight of glsurfaceview
どうもありがとう
glsurfaceviewの高さをカスタム高さに設定したいと思います。 幅が高さと同じであることを希望します。 android:layout_width = "fill_parent" width = height = width_of_the_screenにする方法は?Android setHeight of glsurfaceview
どうもありがとう
あなたはview.getLayoutParams().height = view.getMeasuredWidth();
問題を使用してプログラム的に高さを設定することができそうmeasuredWidth
がちょうどゼロが返されます、これはビューが初めて描かれた後に行う必要があります。 (あなたがOpenGLを使用していると仮定して)、あなたのRendererクラスのonDraw
が呼び出されるまでに、それは間違いなく画面に描画されていることは間違いありません。しかし、GLスレッド(それはonDraw
を呼び出します)とビューの幅/高さなどを変更できる唯一のものである(メイン)UIスレッドとの間でメッセージをやりとりする必要があります。
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>
...