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
密度非依存ピクセル-画面の物理密度に基づく抽象的な単位。これらの単位は、1 dpiが1ピクセルにほぼ等しい160 dpi(1インチあたりのドット数)画面を基準にしています。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インチあたりのピクセル数が異なり、画面上で利用可能な総ピクセル数が増減する場合があります。
getDimensionPixelSize(int id)
Pixelで返されると正確に記述されているメソッドがあるため、Androidのバグなのかどうか疑問に思いgetDimension(int id)
ます。たとえば、ViewsetPadding