18

こんにちは、LinearLayout 内で次のレイアウト構造を使用しています

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </TableRow>

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/tv1"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:paddingLeft="10dp"
            android:textColor="#000" />

        <TextView
            android:id="@+id/tv2"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:gravity="right"
            android:paddingRight="10dp"
            android:textColor="#000" />
    </TableRow>
</TableLayout>

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="320px"
    android:layout_height="320px"
    android:gravity="center" >
</RelativeLayout>

xml ファイルで 320px に設定するのではなく、相対的なレイアウトの幅と高さを Java ファイルから動的に設定したいのですが、それを行うことができません。縦向きモードのみに制限しているため、向きの変更は問題ではありません。match_parent を使用してフルスクリーンで相対的なレイアウトを設定することは可能ですが、画面に別のビューを配置する必要があるため、可能であるか、別の方法で実現する必要があります...

4

8 に答える 8

18

これを使ってみてください

getLayoutParams().height= x;
requestLayout(); or invalidate(); 
于 2013-03-15T05:11:25.620 に答える
7

.xml で相対レイアウトに id を指定します。

android:id="@+id/relativelayout"

今あなたのJavaファイルにこれを書いてください:

RelativeLayout Rl = (RelativeLayout) findViewById(R.id.relativelayout);

RelativeLayout.LayoutParams layout_description = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT or YourUserDefinedwidth,
                        RelativeLayout.LayoutParams.FILL_PARENT or YourUserDefinedHeight);

Rl.setLayoutParams(layout_description);
于 2013-03-15T05:24:53.820 に答える
2

以下のコードから、uはデバイスの高さと幅を取得できます:-

Display display = getWindowManager().getDefaultDisplay();
    int width = (display.getWidth() );
    int height = (display.getHeight() );

paramsTop ur現実的なレイアウト:-

これで、高さや幅を自由に設定できます。

        paramsTop = new RelativeLayout.LayoutParams(width, height);
于 2013-03-15T05:17:03.677 に答える
2

LayoutParamsを使用して、ビューの寸法を動的に設定できます。このようなもの:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id);
// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
params.height = 320;
params.width = 320;
于 2013-03-15T05:18:05.637 に答える
1

高さを変更するつもりなら、これはトリックになります。

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId);
relativeLayout.getLayoutParams().height = 100;
relativeLayout.getLayoutParams().width = 100;
于 2016-11-20T00:08:23.990 に答える