This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
解像度ごとに値を取得するのは良いことだと思いますが、これを実行したくない場合は、pxでこれを指定してください......。
密度に依存しないピクセル(dp)
UIレイアウトを定義するときに、密度に依存しない方法でレイアウトの寸法または位置を表現するために使用する必要がある仮想ピクセル単位。密度に依存しないピクセルは、160 dpi画面の1つの物理ピクセルに相当します。これは、「中」密度画面のシステムで想定されるベースライン密度です。実行時に、システムは必要に応じてdp単位のスケーリングを透過的に処理しbased on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.
ます。アプリケーションのUIを定義するときは、常にdp単位を使用して、さまざまな密度の画面でUIが適切に表示されるようにする必要があります。
解像度に応じて値を変更するのは良いことだと思いますが、これを行いたくない場合は、pxでこれを指定してください......。
このリンクを参照してください
このように
dp
密度に依存しないピクセル-画面の物理的な密度に基づく抽象的な単位。これらの単位は、160 dpi(1インチあたりのドット数)の画面を基準にしており、1dpはほぼ1pxに相当します。When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down.
dpとピクセルの比率は画面密度に応じて変化しますが、必ずしも直接の比率である必要はありません。(px単位の代わりに)dp単位を使用することは、レイアウト内のビューの寸法をさまざまな画面密度に合わせて適切にサイズ変更するための簡単なソリューションです。つまり、さまざまなデバイス間でUI要素の実際のサイズに一貫性を提供します。
px
ピクセル-画面上の実際のピクセルに対応します。実際の表現はデバイスによって異なる可能性があるため、この測定単位はお勧めしません。各デバイスの1インチあたりのピクセル数は異なり、画面で使用できるピクセルの総数は多かれ少なかれあります。