1

私が遭遇している問題は、複数の画面サイズのサポートに関連しています-私が信じているかなり一般的な問題です。私はたくさん検索しましたが、何か役立つものは見つかりませんでした。

私のプロジェクトは伝統的にレイアウトされており、、、、、と呼ばれるさまざまなサイズをサポートするフォルダーがlayoutあります。layout-smalllayout-largelayout-xlarge

したがって、私が知ったように、これらのサイズレジームのそれぞれの中でさえ、画面はすべて同じサイズではありません。たとえば、私の320x480画面は通常のサイズのレイアウトに適していますが、誰かの480x800も同様です。ご想像のとおり、より多くの領域があるため、私のアプリのコンテンツは480x800デバイスの画面全体に表示されません。これがどのように見えるかの例です:

320x480(私が設計したもの)の場合:

ここに画像の説明を入力してください

480x800の場合(下部の余分なスペースに注意してください):

ここに画像の説明を入力してください

今では、アプリをすべての画面で見栄えよくするために、多くの調査と多くの手法を適用してきましたが、基本的なものが欠けているように感じます。dp私は、代わりにpxRelativeLayoutどこでも使用する、そのようなものを使用するためのすべての基本的な手順を実行しました。ただし、アプリのサイズを変更して、より大きな画面に合わせて調整する方法が必要です。たとえば、さまざまなコンポーネント間のマージンを少し増やして、空の垂直スペースをより多く占有することができます。

何かアドバイスや助けはありますか?最悪の場合、480x800の画面用に特別に起動するレイアウトを設計する方法はありますか(最も一般的であると思われるため)?ありがとう。

4

3 に答える 3

1

320:480の比率は480:800とは異なります。したがって、後者の方が前者よりも水平方向のスペースに対して垂直方向のスペースが大きくなります。したがって、レイアウトに問題はありません。

于 2012-08-19T13:30:35.883 に答える
1

画面のサイズが縮小または拡大したときに、定義したビューがどのように動作するかを常に考えるように、画面を設計する必要があります。ご覧のとおり、同じサイズのカテゴリでも画面が大きく異なる場合があります。

表示した画面の場合、正確なdp量ではなく、重みを使用してEditTextコンポーネントの幅を指定する必要があります。これを行う方法に関する多くの記事を見つけることができます。ここから始めましょう。

于 2012-08-19T13:32:05.103 に答える
1

私があなただったら、次のようなレイアウトを使用します。

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your first form line -->
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your second form line -->
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your third form line -->
    </LinearLayout>
        <!-- .... -->

</LinearLayout>

このレイアウトはこれを生成します(もちろん、色なしで:))。線(色付きのボックス)の比率は固定されていますが、そのサイズは画面の高さに動的に適合しています。fill_parentとlayout_weightがそのトリックを行います。

RelativeLayoutを使用する場合は、JAVAからプログラムで空白と高さを設定する必要があります(ここでいくつかの説明があります)

于 2012-08-19T14:01:23.023 に答える