1

これに似た質問をしましたが、より広い範囲の意見を得るために、より一般的な質問をすると思いました。

この質問をするのは、私が開発した最後の 2 つのアプリで、すべての画像リソースを drawable-hdpi フォルダーに入れ、ランドスケープ モードを処理せず、主に個人の Droid フォンでテストし、基本的に私が自分のデバイス用にのみ開発していました。私は常に適切な場所で dpi と sp を使用しましたが、これは私のアプリが他の画面サイズ/密度で適切にスケーリングするには十分ではありませんでした。場合によっては問題なくスケーリングされますが、小さいサイズでは常に画面の一部が切り取られる傾向がありました.

すべてのデバイスで少なくともある程度はうまくスケーリングするアプリを開始するための最良の方法は何ですか?

たとえば、デフォルトの HVGA 画面で正しく表示されるようにアプリのレイアウトを構築し、より大きな密度にスケーリングできるようにする必要がありますか? 縦向きと横向きの両方のレイアウト ファイルを積極的に構築することはベスト プラクティスでしょうか?

1 つのサイズだけに焦点を合わせて、後からこれを管理するためにスクランブルをかけることなく、すべてのデバイスでアプリが適切に表示されるようにするために、どのようなことを行っていますか?

4

1 に答える 1

2

私は常に次のルールに従います。

  • supports-screensからすべてを true に設定します。Android は、すべての画面環境に対応できることを認識し、画面の仮想化を行わないことを認識します。たとえば、デバイスの画面が大きい場合でも、コードでは通常のサイズの画面として表示されます。
  • 幅と高さに固定サイズを使用しないでください。必要に応じて、「dp」を仮想ピクセルとして使用してください。WRAP_CONTENT と FILL_PARENT を使用します。「dp」は、160 dpi の画面上の物理ピクセルです。アプリが低/高密度のデバイスで実行されている場合、Android はこれを再計算します。
  • フォントサイズの単位として「dp」を使用します。
  • すべてを相対的に行うようにしてください。「別の下に何か」などを持ちたい場合は、RelativeLayoutを使用できます。パーセンテージが必要な場合は、LinearLayoutを使用できます。
  • 背景として 9 パスを使用します。
  • リソースを正しい drawable/layout フォルダーに入れていることを確認してください。

もちろん、これはすべてのプロジェクトに最適なアプローチではありません:) UIデザイナーは追加の機能を必要とする場合があります:]

于 2010-12-09T01:18:39.790 に答える