Androidの定義によると、私は次のことを発見しました。
解像度:画面上の物理ピクセルの総数
密度:画面の解像度に基づいて、画面の物理的な幅と高さ全体にわたるピクセルの広がり。
2つの定義の違いをよりよく理解するにはどうすればよいですか?
Androidの定義によると、私は次のことを発見しました。
解像度:画面上の物理ピクセルの総数
密度:画面の解像度に基づいて、画面の物理的な幅と高さ全体にわたるピクセルの広がり。
2つの定義の違いをよりよく理解するにはどうすればよいですか?
解像度は、ディスプレイが一度に表示できるピクセル数の尺度です。640x480。密度は、各ピクセルの実際の単位での大きさの尺度です。これは、画面サイズに大きく関係します。15フィートディスプレイで640x480。
あるデバイスの解像度を別のデバイスと比較する場合、それは簡単な比較です。解像度が高いほど、一度に表示できる情報が多くなります。密度を比較する場合:密度が高いほど、表示が鮮明になります。
高解像度で低密度の場合、画面は非常に大きくなります。一方、低解像度と高密度では、画面が非常に小さくなります。
解像度とは、画面に表示できるピクセル数のことです。
密度はデバイスの実際のサイズに基づいています。デバイスが小さく、解像度が高い場合は、密度が高いため、より少ない物理スペースでより多くのピクセルが表示されます。
ベストプラクティス
複数の画面をサポートする目的は、Androidでサポートされている一般的な画面構成のいずれかで適切に機能し、見栄えのするアプリケーションを作成することです。このドキュメントの前のセクションでは、Androidがアプリケーションを画面構成に適応させる方法と、さまざまな画面構成でアプリケーションの外観をカスタマイズする方法について説明します。このセクションでは、さまざまな画面構成に対してアプリケーションを適切にスケーリングするために役立つ、いくつかの追加のヒントと手法の概要を説明します。
アプリケーションがさまざまな画面で正しく表示されるようにする方法についての簡単なチェックリストは次のとおりです。1。XMLレイアウトファイルでディメンションを指定するときにwrap_content、fill_parent、またはdp単位を使用します。2。アプリケーションコードでハードコードされたピクセル値を使用しないでください。 3. AbsoluteLayoutを使用しないでください(非推奨です)4。さまざまな画面密度に対応する代替ビットマップドローアブルを提供します
次のセクションで詳細を説明します。
XMLレイアウトファイルのビューにandroid:layout_widthとandroid:layout_heightを定義する場合、「wrap_content」、「fill_parent」、またはdpユニットを使用すると、現在のデバイス画面でビューに適切なサイズが指定されます。
たとえば、layout_width = "100dp"のビューは、中密度画面で幅100ピクセルを測定し、システムは高密度画面で幅150ピクセルに拡大縮小するため、ビューは画面上のほぼ同じ物理スペースを占有します。 。
同様に、テキストサイズを定義するには、sp(スケールに依存しないピクセル)を使用する必要があります。spスケール係数はユーザー設定によって異なり、システムはdpの場合と同じようにサイズをスケーリングします。
パフォーマンス上の理由とコードを単純にするために、Androidシステムは寸法または座標値を表現するための標準単位としてピクセルを使用します。つまり、ビューのサイズは常にピクセルを使用してコードで表現されますが、常に現在の画面密度に基づいています。たとえば、myView.getWidth()が10を返す場合、ビューは現在の画面では10ピクセル幅ですが、より高密度の画面を備えたデバイスでは、返される値は15になる可能性があります。アプリケーションコードでピクセル値を使用する場合現在の画面密度に対して事前にスケーリングされていないビットマップを操作する場合、スケーリングされていないビットマップソースと一致するように、コードで使用するピクセル値をスケーリングする必要がある場合があります。
アプリケーションが実行時にビットマップを操作したり、ピクセル値を処理したりする場合は、密度に関する追加の考慮事項に関する以下のセクションを参照してください。
他のレイアウトウィジェットとは異なり、AbsoluteLayoutは、固定位置を使用して子ビューをレイアウトするように強制します。これにより、さまざまなディスプレイでうまく機能しないユーザーインターフェイスが簡単に発生する可能性があります。このため、AbsoluteLayoutはAndroid 1.5(APIレベル3)で非推奨になりました。
代わりに、相対配置を使用して子ビューをレイアウトするRelativeLayoutを使用する必要があります。たとえば、ボタンウィジェットをテキストウィジェットの「右側」に表示するように指定できます。
システムは現在の画面構成に基づいてレイアウトとドローアブルリソースをスケーリングしますが、さまざまな画面サイズでUIを調整し、さまざまな密度に最適化されたビットマップドローアブルを提供することもできます。これは基本的に、このドキュメントの前半の情報を繰り返します。
アプリケーションがさまざまな画面構成でどのように表示されるかを正確に制御する必要がある場合は、構成固有のリソースディレクトリでレイアウトとビットマップドローアブルを調整します。たとえば、中密度および高密度の画面に表示するアイコンについて考えてみます。アイコンを2つの異なるサイズ(たとえば、中密度の場合は100x100、高密度の場合は150x150)で作成し、適切な修飾子を使用して2つのバリエーションを適切なディレクトリに配置します。res/ drawable-mdpi /icon.png//中-密度screensres/drawable-hdpi /icon.png//高密度画面用
解像度は、画面に表示できる各次元(幅×高さ)で検出されたデバイスのピクセル数です。
たとえば、解像度が「1024×768」のデバイスは、幅が1024ピクセル、高さが768ピクセルです。
ピクセル密度は通常、PPI(Pixels Per Inch)で測定されます。これは、ディスプレイに1インチあたりに存在するピクセル数を指します。1インチあたりのピクセル密度が高いほど、デバイスを使用する際の鮮明さと明瞭さが増します。
たとえば、デバイスの画面が「100 PPI」と呼ばれる場合、1インチあたり100の精神的なピクセルがあることを意味します。
解像度=>Cp* Rp(列のピクセル数とRAWのピクセル数)
密度=>Np/ 1インチ(1インチあたりのピクセル数)