6

Androidアプリの設計を開始する前に、どの画面解像度を検討する必要があるかを知るために、しばらく検索しました。

私はこれらのものを見つけました:

xlarge画面は少なくとも960dpx720dp

大画面は少なくとも640dpx480dp

通常の画面は少なくとも470dpx320dpです

小さな画面は少なくとも426dpx320dpです

Androidアプリを開発する際に留意する必要があるデバイスの解像度はどれですか?

しかし実際には、これらは私が望んでいたものではありません。

私が知りたかったのは、これらの解像度ごとにアプリケーションを設計するか、最も使用されている解像度だけを考慮に入れるべきかということです。

また

幅、高さ、マージンなどにハードコードされた値を使用していない場合は、画面の解像度について心配する必要はありません。

また

これはどれくらい良いですか-表示メトリックを使用してデバイスの幅と高さを見つけ、これらの値に従ってすべてのビューを動的に作成しますか?

4

4 に答える 4

7

これらの解像度ごとにアプリケーションを設計するか、最もよく使用される解像度だけを考慮する必要があります。

最も人気のある画面だけでなく、すべての画面でアプリケーションが正しく動作することを確認する必要があります。私はボトムアップから始めます...最初に、小さな/通常の画面で正しく動作することを確認します(そうすることで、すべての画面で動作することを確認します)。次に、マルチペイン レイアウトなどを使用して、タブレットのレイアウトを最適化できます。

幅、高さ、余白などにハードコードされた値を使用していない場合は、画面の解像度について心配する必要はありません。

ここで何を言おうとしているのかわかりませんdppx.

ディスプレイ メトリックを使用してデバイスの幅と高さを見つけ、これらの値に従ってすべてのビューを動的に作成しますか?

これは最後の手段です。ただし、ほとんどの場合、レイアウトはそれほど複雑ではなく、必要ありません。多くの場合、幅/高さを設定するためにwrap_contentandを使用し、 s を使用してビューを互いに相対的に配置することがよくあります。絶対に必要な場合にのみ、ビューの幅/高さを測定する必要があります。match_parentRelativeLayout

于 2012-07-03T13:38:49.470 に答える
4

私見では、すべてのデバイスがサポートされるように常にアプリケーションをコーディングする必要があります。ここで詳しく説明されているランチャー アイコン (画面サイズごとに異なる解像度): http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.htmlから、すべてが(match_parent や wrap_content などの属性を使用して) 画面サイズに相対的に配置されます。

画面サイズを発見した後にビューが動的に作成されるようにコーディングすることもできますが、最初のアイデアを実行する方が簡単で効果的だと思います!

于 2012-07-03T13:37:21.703 に答える
3

最適なオプションは、単純な高さと幅の取得パラメーターを使用して、画面の幅と高さを動的に取得することです。

DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int height = displaymetrics.heightPixels;
        int wwidth = displaymetrics.widthPixels;

他のオプションは、画面の幅と高さが最大のデバイス用に作成し、それぞれの画面サイズに対して数学的に処理することです。

于 2012-07-03T13:41:19.537 に答える
2

さて、全サイズ対応のデザインがお勧めです。しかし、私はそれが多くのオーバーヘッドであることを知っています。

したがって、目標としている最大のデバイス用に設計し、デバイスのサイズに基づいて画像を調整することができます。ハードコードされた値を使用しないでください。wrap_contentまたはを使用しfill_parentます。

はい、画像を動的に調整することは良い考えですが、それにはより多くのコーディングが必要になります。これは私が使用するテクニックです。

于 2012-07-03T13:39:04.040 に答える