0

この質問が以前に尋ねられた場合は申し訳ありませんが、その場合、検索で見つけるのは困難でしたが、ここに行きます:

Android Studio で DP ピクセルを使用すると、プレビューと比較して、実際のデバイスまたはエミュレーターで要素が広くなったり短くなったりすることがあります。これは、異なる密度を考えると理にかなっています。

私が疑問に思っているのは、高さおよび/または幅に関して特定の黄金の制限があるかどうかです。これにより、すべてのコンテンツをこの制限内に保つと、画面密度に関係なく、何も画面外にならないことが保証されます。デバイスは。

たとえば、チェス盤を作りたい場合、できるだけ幅を広くしたいのですが、常にどの画面にも収まるようにします。ここに黄金の限界はありますか?

4

1 に答える 1

-1

画面の大きさがわからないため、絶対値を使用しないでください。アプリに報告される dp を選択するアプリもあります。
あなたの例を見てみましょう。チェス盤のビューがあるかもしれませんCell。次に、それらを LinearLayout に配置できます (Viewの代わりに が使用されますCell)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="8">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="8">

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/white" />

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/black" />

    </LinearLayout>

    ...

これにより、次の結果が得られます (上記の例では、最初の行のみを示しています)。

サンプル画像

ご覧のとおり、画面はmatch_parent絶対値を使用せずに完全に使用されています (ルート ビューで使用されているため)。もちろん、これを特定のニーズに合わせて変更することもできます。おそらく、そこにさらにいくつかのビューを配置する必要があるからです。

注: 実際にはこのようにしないでください。この例ではネストされた重みを使用していますが、これはパフォーマンスに悪影響を及ぼします。これは、その方法を理解するためのものです。

于 2016-04-04T12:48:12.910 に答える