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 레이아웃을 정의 할 때 레이아웃 크기를 나타내거나 밀도 독립적 인 방식으로 위치를 지정하는 데 사용해야하는 가상 픽셀 단위입니다. 밀도 독립적 인 픽셀은 160dpi 화면에서 하나의 물리적 픽셀과 같습니다. 이는 "중간"밀도 화면에 대해 시스템에서 가정 한 기준 밀도입니다. 런타임시 시스템은 필요에 따라 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
밀도 독립적 픽셀-화면의 물리적 밀도를 기반으로하는 추상 단위입니다. 이 단위는 160dpi (dots per inch) 화면과 관련이 있으며 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
픽셀-화면의 실제 픽셀에 해당합니다. 실제 측정 값은 장치마다 다를 수 있으므로이 측정 단위는 권장하지 않습니다. 각 장치는 인치당 다른 수의 픽셀을 가질 수 있으며 화면에서 사용 가능한 총 픽셀 수를 더 많거나 적을 수 있습니다.
getDimensionPixelSize(int id)
정확히 그래서, 그것은 픽셀에 반환한다고 것을getDimension(int id)
보기로 예를 들면, 사용할 준비가 될 것이라고, DP (종속 독립적 인 단위)에 반환해야합니다setPadding