28

複数の画面サイズで機能するレイアウトの構築についていくつかの調査を行いましたが、明確化を求めています。

3 つの画面サイズ (小、中、大) ごとに個別のレイアウト ファイルを作成するのが一般的な方法ですか、それとももっと簡単な方法で実現できますか?

プロジェクトを大画面デバイスでテストしてきましたが、パディングやマージンなどに DIP (密度非依存ピクセル) を使用していますが、小さな画面で表示するとまだぎこちなくなります。中サイズの画面用にプロジェクトを設計し、Android が適切にスケーリングできるようにする必要がありますか?

これが良い質問かどうかはわかりませんが、複数の画面サイズを設計するための一般的な方法を探しています。職業はなんですか?

編集:これに加えて、たとえば、画面の下部から 40dip 上のボタンがあるとします。文字通り 40dip と書く必要がありますか、または 40 * screenWidth / blahblah などのような何らかのピクセル計算を使用する必要があります。ユーザーの画面サイズに応じてスケーリングするようにしますか? UI の経験が限られている...

4

3 に答える 3

14

画面サイズに関しては、物理的なサイズと密度という 2 つの軸を考慮する必要があります。密度は、必要に応じてディップとスケーリングされたリソースで測定値を提供することによって処理されます。しかし、密度は必ずしもサイズを意味するわけではなく、その逆もありません。仕組みの詳細については、 http://developer.android.com/guide/practices/screens_support.htmlを参照してください。

サポートする各画面解像度に基づいて異なるレイアウトを使用することは一般的ではなく、推奨もされていませんが、サイズ クラス (小、中、大) ごとに異なるレイアウトを設計することはまったく合理的です。アプリによっては、特定のナビゲーション要素を追加、削除、または再配置することで、さまざまなサイズの画面でメリットが得られる場合があります。

特定のサイズ クラス内では、レイアウトが正確な画面解像度の変動を許容することを確認する必要があります。Falmarri が提案したように、相対的なレイアウト、ウェイト、およびその他の利用可能なツールを使用して、レイアウトを適切に拡張します。

于 2010-12-05T20:50:53.763 に答える
3

一般的なルールは、レイアウト xml のサイズ定義に密度非依存ピクセル (ディップ) を使用することです。すでに行っているようです。そうすることで、すべての範囲のデバイスに対して唯一のレイアウトが得られます。分割する必要があるのはグラフィックです。そのために、「drawable-ldpi」、「drawable-mdpi」、「drawable-hdpi」という 3 つの異なるドローアブル ディレクトリを使用します。これは、画像がさまざまな画面密度で同じサイズ (たとえば、ミリメートル) になるようにするために行われます (画面サイズが同じであると仮定します - たとえば、通常)。画像は次のようにスケーリングする必要があります。

  • ドローアブル hdpi: 150%
  • ドローアブル mdpi: 100%
  • ドローアブル ldpi: 75%

おそらくそれは悪いアドバイスです。ただし、Google の画面サイズと密度のグラフを見ると、市場にそのようなデバイスがほとんどないため、大画面の徹底的なテストに追加の努力を投資しないことを決定できます。

于 2010-12-05T20:36:35.007 に答える
1

個別のレイアウトを作成しないことは、実際には一般的な方法ではありません。引き伸ばすことができない画像がある場合にのみ、それが本当に推奨される方法です。

小さな/大きな画面のデバイスで表示すると、常に少し引き伸ばされたり圧縮されたりします。これは、さまざまなサイズの画面の定義のようなものです。相対レイアウトを使用して、Android に特定のピクセル数を制御させる必要があります。

于 2010-12-05T20:20:37.537 に答える