web-dev-qa-db-ja.com

Android:解像度と密度の違いは何ですか?

Androidの定義によると、私は次のことを発見しました:

解像度:画面上の物理ピクセルの総数

密度:画面の解像度に基づいて、画面の物理的な幅と高さ全体にわたるピクセルの広がり。

2つの定義の違いをよりよく理解するのを誰かが助けてくれますか?

よろしくお願いしますc。

20
Cris

解像度とは、画面に表示できるピクセル数のことです。

密度はデバイスの実際のサイズに基づいています。デバイスが小さく、解像度が高い場合は、密度が高いため、より少ない物理スペースでより多くのピクセルが表示されます。

29

解像度は、ディスプレイが一度に表示できるピクセル数の尺度です。 640x480。密度は、各ピクセルの実際の単位での大きさの尺度です。これは、画面サイズに大きく関係します。 15フィートディスプレイで640x480。

あるデバイスの解像度を別のデバイスと比較する場合、それは簡単な比較です。解像度が高いほど、一度に表示できる情報が多くなります。密度を比較する場合:密度が高いほど、ディスプレイは鮮明に表示されます。

高解像度で低密度の場合、画面は非常に大きくなります。一方、低解像度と高密度では、画面が非常に小さくなります。

40
Wesley Wiser

基本的に:

  1. 解像度は、絶対ピクセル数に関係します。 (ウィキペディアをチェックしてください 画像解像度
  2. 密度(別名ピクセル/インチ-PPI)は、相対ピクセル/インチ数に関係します。 (ウィキペディアをチェックしてください ピクセル密度

気をつけて、ベコ

9
Dr Beco

ベストプラクティス


複数の画面をサポートする目的は、Androidでサポートされている一般的な画面構成のいずれでも適切に機能し、見栄えのするアプリケーションを作成することです。このドキュメントの前のセクションでは、Androidがアプリケーションを画面構成に適応させる方法と、さまざまな画面構成でアプリケーションの外観をカスタマイズする方法について説明します。このセクションでは、いくつかの追加のヒントと概要を説明します。アプリケーションがさまざまな画面構成に合わせて適切にスケーリングされるようにするためのさまざまな手法。

アプリケーションがさまざまな画面で正しく表示されるようにする方法についての簡単なチェックリストは次のとおりです。1。XMLレイアウトファイルでディメンションを指定するときにwrap_content、fill_parent、またはdp単位を使用します。2。アプリケーションコードでハードコードされたピクセル値を使用しないでください。 3. AbsoluteLayoutを使用しないでください(非推奨です)4。さまざまな画面密度に対応する代替ビットマップドローアブルを提供します

次のセクションで詳細を説明します。

  1. レイアウトの寸法には、wrap_content、fill_parent、またはdpユニットを使用します

XMLレイアウトファイルのビューにAndroid:layout_widthとAndroid:layout_heightを定義する場合、「wrap_content」、「fill_parent」、またはdp単位を使用すると、現在のデバイス画面でビューに適切なサイズが指定されます。

たとえば、layout_width = "100dp"のビューは、中密度の画面で幅100ピクセルを測定し、システムは高密度の画面で幅を150ピクセルに拡大するため、ビューは画面上のほぼ同じ物理スペースを占有します。 。

同様に、テキストサイズを定義するには、sp(スケールに依存しないピクセル)を使用する必要があります。 spスケール係数はユーザー設定に依存し、システムはdpの場合と同じようにサイズをスケーリングします。

  1. アプリケーションコードでハードコードされたピクセル値を使用しないでください

パフォーマンス上の理由とコードを単純にするために、Androidシステムは、寸法または座標値を表すための標準単位としてピクセルを使用します。つまり、ビューの寸法は、常に次を使用してコードで表されます。ピクセルですが、常に現在の画面密度に基づいています。たとえば、myView.getWidth()が10を返す場合、ビューは現在の画面では10ピクセル幅ですが、より高密度の画面を備えたデバイスでは、返される値は15になる可能性があります。 。アプリケーションコードでピクセル値を使用して、現在の画面密度に対して事前にスケーリングされていないビットマップを操作する場合、スケーリングされていないビットマップソースと一致するようにコードで使用するピクセル値をスケーリングする必要がある場合があります。

アプリケーションが実行時にビットマップを操作したり、ピクセル値を処理したりする場合は、密度に関する追加の考慮事項に関する以下のセクションを参照してください。

  1. AbsoluteLayoutを使用しないでください

他のレイアウトウィジェットとは異なり、AbsoluteLayoutは、固定位置を使用して子ビューをレイアウトするように強制します。これにより、さまざまなディスプレイで適切に機能しないユーザーインターフェイスが簡単に発生する可能性があります。このため、AbsoluteLayoutはAndroid 1.5(APIレベル3)で非推奨になりました。

代わりに、相対配置を使用して子ビューをレイアウトするRelativeLayoutを使用する必要があります。たとえば、ボタンウィジェットをテキストウィジェットの「右側」に表示するように指定できます。

  1. サイズと密度に固有のリソースを使用する

システムは現在の画面構成に基づいてレイアウトとドローアブルリソースをスケーリングしますが、さまざまな画面サイズでUIを調整し、さまざまな密度に最適化されたビットマップドローアブルを提供することもできます。これは基本的に、このドキュメントの前半の情報を繰り返します。

さまざまな画面構成でアプリケーションがどのように表示されるかを正確に制御する必要がある場合は、構成固有のリソースディレクトリでレイアウトとビットマップドローアブルを調整します。たとえば、中密度および高密度の画面に表示するアイコンについて考えてみます。アイコンを2つの異なるサイズ(たとえば、中密度の場合は100x100、高密度の場合は150x150)で作成し、適切な修飾子を使用して、適切なディレクトリに2つのバリエーションを配置します。res/ drawable-mdpi/icon.png //中密度の場合-密度screensres/drawable-hdpi/icon.png //高密度画面用

解像度=> Cp * Rp(COLUMNのPIXELの数とRAWのPIXELの数)

密度=> Np/1インチ(1インチあたりのピクセル数)

1
Hardik Gajera

解像度は、画面に表示できる各次元(幅×高さ)で検出されたデバイス上のピクセル数です。

たとえば、解像度が「1024×768」のデバイスは、幅が1024ピクセル、高さが768ピクセルです。

ピクセル密度は通常PPI(Pixels Per Inch)で測定され、1インチあたりに存在するピクセル数を指します1インチあたりのピクセル密度が高いほど、デバイスを使用する際の鮮明さと明瞭さが増します。

たとえば、デバイス画面が「100PPI」と呼ばれる場合、1インチあたり100の精神的なピクセルがあることを意味します。

参照

1