"px", "dip", "dp"및 "sp"의 차이점은 무엇입니까?


질문

 

Android 측정 단위의 차이점은 무엇입니까?

  • px
  • dip
  • dp
  • sp

답변

 

Android 개발자 문서에서 :

  1. px
    > Pixels - corresponds to actual pixels on the screen.

  2. in
    > Inches - based on the physical size of the screen.
    > 1 Inch = 2.54 centimeters

  3. mm
    > Millimeters - based on the physical size of the screen.

  4. pt
    > Points - 1/72 of an inch based on the physical size of the screen.

  5. dp or dip
    > Density-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".

  6. sp
    > Scaleable Pixels OR scale-independent pixels - this is like the dp unit, but it is also scaled by the user's font size preference. It is recommended you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference. Note, the Android documentation is inconsistent on what sp actually stands for, one doc says "scale-independent pixels", the other says "scaleable pixels".

안드로이드의 밀도 독립 이해에서 :

Density Bucket Screen Density Physical Size Pixel Size
ldpi 120 dpi 0.5 x 0.5 in 0.5 in * 120 dpi = 60x60 px
mdpi 160 dpi 0.5 x 0.5 in 0.5 in * 160 dpi = 80x80 px
hdpi 240 dpi 0.5 x 0.5 in 0.5 in * 240 dpi = 120x120 px
xhdpi 320 dpi 0.5 x 0.5 in 0.5 in * 320 dpi = 160x160 px
xxhdpi 480 dpi 0.5 x 0.5 in 0.5 in * 480 dpi = 240x240 px
xxxhdpi 640 dpi 0.5 x 0.5 in 0.5 in * 640 dpi = 320x320 px
Unit Description Units Per Physical Inch Density Independent? Same Physical Size On Every Screen?
px Pixels Varies No No
in Inches 1 Yes Yes
mm Millimeters 25.4 Yes Yes
pt Points 72 Yes Yes
dp Density Independent Pixels ~160 Yes No
sp Scale Independent Pixels ~160 Yes No

Google 디자인 문서에서 더 많은 정보를 찾을 수 있습니다.



답변

이것에 대한 모든 것이 꽤 많은 크기와 밀도의 여러 화면에 대한 최선의 지원을 얻는 방법은 여기에 잘 설명되어 있습니다.

여러 화면 지원

화면 크기 실제 물리적 크기는 화면의 대각선으로 측정됩니다. 단순화를 위해 Android 그룹 모두 모든 실제 화면 크기가 4로 일반화 된 크기 : 작고 정상적인, 크고 여분의 크게. 화면 밀도 물리적 영역 내의 픽셀 수 화면;일반적으로 DPI (인치당 도트)라고합니다.예를 들어, A. "낮은"밀도 화면은 주어진 물리적 영역 내에 픽셀이 적으며, "정상"또는 "높은"밀도 화면과 비교됩니다.단순함을 위해, Android는 모든 실제 화면 밀도를 6 개 일반화로 그룹화합니다 밀도 : 낮음, 중간, 고, 여분의 높고, 여분의 여분의 높고, 여분의 여분의 여분의 높이. 오리엔테이션 사용자의 포인트에서 화면의 방향 보다.이것은 풍경이나 초상화이며, 이는 화면의 종횡비는 각각 넓거나 키가 크다.그것을 알지 못한다 다른 장치 만 다른 방향으로 작동합니다 기본값이지만 사용자가 런타임에 변경할 수 있습니다. 장치를 회전시킵니다.

해상도 실제 픽셀의 총 수를 켭니다 스크린.여러 화면에 대한 지원을 추가 할 때 응용 프로그램은 수행합니다 해상도로 직접 작동하지 않습니다.신청서는 관심이 있어야합니다 일반화 된 화면 크기와 밀도만으로는 일반화 된 크기 및 밀도 그룹.

밀도 독립 픽셀 (DP) A 가상 UI 레이아웃을 정의 할 때 사용해야하는 픽셀 단위, Express 레이아웃 치수 또는 위치가 밀도로 독립적 인 방식으로 위치합니다. 밀도 - 독립적 인 픽셀은 160의 하나의 물리적 픽셀과 동일합니다. 시스템이 가정 한 기준 밀도 인 DPI 화면 "중간"밀도 화면.런타임에 시스템은 투명하게 처리합니다 실제 밀도에 따라 필요한 경우 DP 단위의 모든 스케일링 사용중인 화면의.DP 단위를 화면 픽셀로 변환하는 것입니다 단순한: PX = DP * (DPI / 160). 예를 들어, 240 DPI 화면에서 1 dp 1.5 물리적 픽셀과 같습니다.언제든지 DP 장치를 사용해야합니다 응용 프로그램의 UI를 정의하여 UI를 올바르게 표시 할 수 있도록 다른 밀도가있는 스크린.

둘 이상의 유형의 장치에 대해 Android 앱을 개발하는 것에 대해 모두 진지한 경우 적어도 한 번 스크린을 지원하는 스크린을 읽어야합니다.그 외에도 특정 화면 구성이있는 실제 활성 장치 수를 알아야 할 사항입니다.

화면 크기와 밀도



답변

DP가 어떻게 PX로 변환하는지에 대해 더 자세히 설명합니다.

MDPI 장치에서 실행 중이면 150 x 150 PX 이미지는 150 * 150 DP의 화면 공간을 차지합니다. HDPI 디바이스에서 실행 중이면 150 x 150 PX 이미지는 100 * 100 DP의 화면 공간을 차지합니다. XHDPI 디바이스에서 실행되는 경우 150x150 PX 이미지는 75 * 75 DP의 화면 공간을 차지합니다.

다른 방법 : 당신은 당신의 신청서에 이미지를 추가하고 100 * 100 DP 제어를 채우기 위해 필요합니다.지원되는 화면 크기에 대해 다른 크기 이미지를 만들어야합니다.

MDPI 용 100 * 100 PX 이미지 150 * 150 PX 이미지 HDPI XHDPI 용 200 * 200 PX 이미지



답변

PX - PIXELS - 스케일 당 점은 화면의 실제 픽셀에 해당합니다.

i - 인치 - 화면의 물리적 크기를 기준으로합니다.

mm - 밀리미터 - 화면의 물리적 크기를 기준으로합니다.

PT - 포인트 - 화면의 물리적 크기를 기반으로 한 인치의 1/72.

DP - 밀도 - 독립적 인 픽셀 - 화면의 물리적 밀도를 기반으로하는 추상 단위입니다. 이 장치는 160 DPI 화면에 상대적이므로 하나의 DP는 160 DPI 화면에서 하나의 픽셀입니다.DP-to-픽셀의 비율은 스크린 밀도로 변경되지만 반드시 직접적인 비율이 아닐 것도 아닙니다. 참고 : 컴파일러는 DP가 SP와 더 일관 되더라도 DIP와 DP를 모두 허용합니다.

SP - 확장 가능한 픽셀 - 이것은 DP 단위와 같습니다. 그러나 그것은 또한 사용자의 글꼴 크기 환경 설정에 의해 확장됩니다. 글꼴 크기를 지정할 때이 장치를 사용하는 것이 좋습니다. 따라서 화면 밀도와 사용자의 선호도 모두 조정됩니다.

동일한 크기의 두 화면의 예를 들어 보지만 160 dpi의 스크린 밀도 (인치당 도트, 즉 인치당 픽셀 당)가 있고 다른 하나는 240 dpi입니다.

                          Lower resolution screen     Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch (“dpi”)               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5

Density-independent pixels          240                               240
(“dip” or “dp” or “dps”)

Scale-independent pixels 
 (“sip” or “sp”)                  Depends on user font size settings    same


답변

또한 다음 개념을 명확하게 이해해야합니다.

화면 크기:

실제 물리적 크기는 화면의 대각선으로 측정됩니다.단순화를 위해 Android 그룹은 모든 실제 화면 크기로 소규모, 정상적인 크기의 크기 : 작은, 정상, 크고 여분의 크기.

화면 밀도 :

화면의 물리적 영역 내의 픽셀 수;일반적으로 DPI (인치당 도트)라고합니다.예를 들어, A. "낮은"밀도 화면은 주어진 물리적 영역 내에 픽셀이 적으며, "정상"또는 "높은"밀도 화면과 비교됩니다.단순함을 위해, Android는 모든 실제 화면 밀도를 4 가지 일반화로 그룹화합니다 밀도 : 낮음, 중간, 높고 여분의 높음.

정위:

사용자의 관점에서 화면의 방향.이것은 풍경이나 초상화이며, 이는 화면의 종횡비는 각각 넓거나 키가 크다.알아 내라 다른 장치가 다른 방향으로 작동 할뿐만 아니라 기본적으로 사용자가 런타임에서 변경할 수 있습니다. 장치를 회전시킵니다.

해결:

총 실제 픽셀 수입니다.여러 화면에 대한 지원을 추가 할 때 응용 프로그램이 직접 작동하지 않습니다. 해상도로;응용 프로그램은 화면에만 관련되어야합니다 일반화 된 크기 및 밀도로 지정된 크기 및 밀도 여러 떼.

밀도 독립 픽셀 (DP) :

UI 레이아웃을 정의 할 때 사용해야하는 가상 픽셀 단위, 레이아웃 크기를 표현하거나 밀도로 독립적 인 방식으로 위치하십시오.밀도 - 독립적 인 픽셀 160 DPI 화면에서 하나의 물리적 픽셀과 동일합니다. 시스템이 "중간"밀도 화면을위한 시스템이 가정 한 기준 밀도. 런타임에 시스템은 DP의 모든 스케일링을 투명하게 처리합니다. 사용중인 화면의 실제 밀도를 기반으로 한 단위입니다. DP 장치의 화면 픽셀로 변환은 간단합니다. px = dp * (dpi / 160).예를 들어, 240 dpi 화면에서 1 dp는 1.5 물리적으로 같습니다. 픽셀.당신은 당신이 정의 할 때 항상 DP 단위를 사용해야합니다 응용 프로그램의 UI, 귀하의 UI를 화면에 올바르게 표시하는 것을 보장하기 위해 다른 밀도.

참조 : Android 개발자 사이트



답변

DP는 딥입니다.모든 것을 위해 사용하십시오 (여백, 패딩 등).

{텍스트 크기}에만 SP를 사용하십시오.


다른 화면 밀도에서 동일한 크기를 얻으려면 Android는 런타임에 이러한 단위를 픽셀로 변환하므로 Tricky 수학이 없습니다.


다른 화면 크기의 PX, DP 및 SP의 차이점을 참조하십시오.

android

출처 : Android 프로그래밍 : 큰 괴상한 목장 가이드

출처:https://stackoverflow.com/questions/2025282/what-is-the-difference-between-px-dip-dp-and-sp