0

画面の幅に比例した幅 (例: 60%) を持つダイアログ (テーブル レイアウトに基づく) を Android で作成するにはどうすればよいですか? 次のコードは、画面のすべての幅を取ります。

    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
            <ImageView
                    android:id="@+id/image"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"/>
            <TextView
                    android:id="@+id/text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:textColor="#FFF"
                    android:layout_margin="5dp"/>
        </TableRow>
        <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
            <Button
                    android:id="@+id/dialogButtonOK"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Ok"
                    android:gravity="center"
                    android:layout_below="@+id/text"
                    android:layout_span="2"/>
        </TableRow>
    </TableLayout>
4

1 に答える 1

0

私の知る限り、それは不可能ですが、これでうまくいくかもしれません。あなたのアクティビティであなたのxmlレイアウトにアクセスしようとします - TableLayout tl=(TableLayout)findViewById(...) そしてあなたのデバイスの画面幅を取得しようとします

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

次に、その幅に基づいて値を設定します

rl.setLayoutParams(new LayoutParams(width*0.7,LayoutParams.WRAP_CONTENT(or something else) ));
于 2013-04-23T20:05:51.863 に答える