2

それで、余白などでのパーセントの使い方を考えています。

オーバーレイを使用してレイアウトを dpi サイズで区切ることができますが、なぜパーセンテージを使用できないのでしょうか?

そんな感じ:

Display display = getWindowManager().getDefaultDisplay();

float width = display.getWidth();
float height = display.getHeight();

//20% of left margin
float imageMarginLeft = ( width * 20 ) / 100;

そして、この余白を画像またはその他の要素に設定します。

これは悪いですか?それについて議論したいだけです。

ありがとう。

4

1 に答える 1

2

LinearLayout は、重みを使用してパーセンテージを実行できます。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:weightSum="100">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="20"
        android:text="Button" />
</LinearLayout>

ウェイトベースのレイアウトを多数使用すると、特にネストされている場合はパフォーマンスが低下します。プログラムで行うと、レイアウト時間にも影響する可能性があります。

編集 ディスカッションを探しているので、パーセンテージ ベースのレイアウトは一般的に悪いことをお勧めします。問題は、物理的な画面サイズが Android によって大きく異なることです。Incredible の画面の半分は、Galaxy S III の画面の半分とは大きく異なり、Nexus 7 の画面の半分などとは大きく異なります。dp 単位を使用する利点は、物理的なサイズに関連していることです。画面上のものの。これにより、小さな画面でボタンが小さく (選択しにくく) ならないようにし、大きな画面でボタンが巨大 (かつ醜く) にならないようにします。

于 2012-08-02T18:20:54.047 に答える