etc./StackOverFlow

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

청렴결백한 만능 재주꾼 2021. 9. 23. 22:51
반응형

질문자 :capecrawler

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

  • pixel
  • dip
  • DP
  • sp

답변자 : Community Wiki

Android 개발자 문서에서 :

  1. 픽셀
    > 픽셀 - 화면의 실제 픽셀에 해당합니다.
  2. in
    > 인치 - 화면의 물리적 크기를 기준으로 합니다.
    > 1인치 = 2.54센티미터
  3. mm
    > 밀리미터 - 화면의 물리적 크기를 기준으로 합니다.
  4. pt
    > 포인트 - 화면의 물리적 크기를 기준으로 1/72인치.
  5. dp 또는 dip
    > Density -independent Pixels - 화면의 물리적 밀도를 기반으로 하는 추상적인 단위입니다. 이 단위는 160dpi 화면을 기준으로 하므로 160dpi 화면에서 1dp는 1픽셀입니다. dp-to-pixel의 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하는 것은 아닙니다. 참고: 컴파일러는 "dp"가 "sp"와 더 일관성이 있지만 "dip" 및 "dp"를 모두 허용합니다.
  6. sp
    > 확장 가능한 픽셀 또는 크기에 독립적인 픽셀 - dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기가 조정됩니다. 글꼴 크기를 지정할 때 이 단위를 사용하는 것이 좋으므로 화면 밀도와 사용자 선호도에 맞게 조정됩니다. 참고, 안드로이드 문서는 무엇에 일관성이 sp 실제로, 하나 개의 약자 문서가 , "스케일 독립적 픽셀"라고 , 다른 하나는 "확장 픽셀"을 말한다.

Android의 밀도 독립 이해 에서 :

밀도 버킷 화면 밀도 물리적 크기 픽셀 크기
ldpi 120dpi 0.5 x 0.5인치 0.5인치 * 120dpi = 60x60픽셀
MDPI 160dpi 0.5 x 0.5인치 0.5인치 * 160dpi = 80x80픽셀
hdpi 240dpi 0.5 x 0.5인치 0.5인치 * 240dpi = 120x120픽셀
xhdpi 320dpi 0.5 x 0.5인치 0.5인치 * 320dpi = 160x160픽셀
xxhdpi 480dpi 0.5 x 0.5인치 0.5인치 * 480dpi = 240x240픽셀
xxxhdpi 640dpi 0.5 x 0.5인치 0.5인치 * 640dpi = 320x320픽셀
단위 설명 물리적 인치당 단위 밀도 독립? 모든 화면에서 동일한 물리적 크기?
px pixels 다양하다 아니요 아니요
in inthces 1
mm 밀리미터 25.4
pt points 72
DP 밀도 독립 픽셀 ~160 아니요
sp 독립 픽셀 크기 조정 ~160 아니요

자세한 정보는 Google 디자인 문서 에서도 찾을 수 있습니다.

답변자 : Bruiser

이것에 대한 거의 모든 것과 다양한 크기와 밀도의 여러 화면에 대한 최상의 지원을 달성하는 방법은 여기에 잘 설명되어 있습니다.

화면 크기
화면의 대각선으로 측정한 실제 물리적 크기입니다. 간단하게 하기 위해 Android는 모든 실제 화면 크기를 소형, 일반, 대형 및 초대형의 4가지 일반화 크기로 그룹화합니다.

화면 밀도
화면의 물리적 영역 내의 픽셀 수입니다. 일반적으로 dpi(인치당 도트 수)라고 합니다. 예를 들어 "낮은" 밀도 화면은 "일반" 또는 "높은" 밀도 화면에 비해 주어진 물리적 영역 내에서 더 적은 수의 픽셀을 갖습니다. 단순성을 위해 Android는 모든 실제 화면 밀도를 6가지 일반 밀도(낮음, 중간, 높음, 매우 높음, 매우 높음 및 매우 높음)로 그룹화합니다.

Orientation
사용자의 관점에서 본 화면의 방향입니다. 이것은 가로 또는 세로로, 화면의 가로 세로 비율이 각각 너비 또는 높이임을 의미합니다. 다른 장치는 기본적으로 다른 방향으로 작동할 뿐만 아니라 사용자가 장치를 회전할 때 런타임에 방향이 변경될 수 있습니다.

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

Density-independent pixel(dp)
밀도 독립적인 방식으로 레이아웃 치수 또는 위치를 표현하기 위해 UI 레이아웃을 정의할 때 사용해야 하는 가상 픽셀 단위입니다. 밀도 독립형 픽셀은 160dpi 화면의 물리적 픽셀 하나에 해당하며, 이는 "중간" 밀도 화면에 대해 시스템에서 가정하는 기준 밀도입니다. 런타임 시 시스템은 사용 중인 화면의 실제 밀도를 기반으로 필요에 따라 dp 단위의 모든 크기 조정을 투명하게 처리합니다. dp 단위를 화면 픽셀로 변환하는 것은 간단합니다: px = dp * (dpi / 160) . 예를 들어 240dpi 화면에서 1dp는 1.5개의 물리적 픽셀과 같습니다. 밀도가 다른 화면에서 UI가 적절하게 표시되도록 하려면 애플리케이션의 UI를 정의할 때 항상 dp 단위를 사용해야 합니다.

두 가지 이상의 장치 유형을 위한 Android 앱 개발에 대해 진지하게 생각하고 있다면 화면 지원 개발 문서를 한 번 이상 읽었을 것입니다. 그 외에도 특정 화면 구성이 있는 실제 활성 장치 수를 아는 것은 항상 좋은 일입니다.

답변자 : devmiles.com

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
  • hdpi용 150 * 150 px
  • xhdpi용 200 * 200 px

답변자 : Amit Gajera

px - 픽셀 - 스케일당 포인트는 화면의 실제 픽셀에 해당합니다.

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

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

pt - 포인트 - 화면의 물리적 크기를 기준으로 한 인치의 1/72입니다.

dp - 밀도 독립 픽셀 - 화면의 물리적 밀도를 기반으로 하는 추상 단위입니다. 이 단위는 160dpi 화면을 기준으로 하므로 dp 는 160dpi 화면에서 1픽셀입니다. dp-to-pixel의 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하는 것은 아닙니다. 참고: 컴파일러는 dipdp 모두 허용하지만 dp sp 와 더 일관성이 있습니다.

sp - 확장 가능한 픽셀 - dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기도 조정됩니다. 글꼴 크기를 지정할 때 이 단위를 사용하는 것을 권장하므로 화면 밀도와 사용자의 기호에 맞게 조정됩니다.

크기는 같지만 화면 밀도가 160dpi(인치당 도트 수, 즉 인치당 픽셀 수)이고 다른 하나는 240dpi인 두 화면을 예로 들어 보겠습니다.

 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

답변자 : Sazzad Hissain Khan

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

화면 크기:

화면의 대각선으로 측정한 실제 물리적 크기입니다. 간단하게 하기 위해 Android는 모든 실제 화면 크기를 소형, 일반, 대형 및 초대형의 4가지 일반화 크기로 그룹화합니다.

화면 밀도:

화면의 물리적 영역 내의 픽셀 수입니다. 일반적으로 dpi(인치당 도트 수)라고 합니다. 예를 들어 "낮은" 밀도 화면은 "일반" 또는 "높은" 밀도 화면에 비해 주어진 물리적 영역 내에서 더 적은 수의 픽셀을 갖습니다. 단순성을 위해 Android는 모든 실제 화면 밀도를 네 가지 일반 밀도(낮음, 중간, 높음 및 매우 높음)로 그룹화합니다.

정위:

사용자의 관점에서 본 화면의 방향입니다. 이것은 가로 또는 세로로, 화면의 가로 세로 비율이 각각 너비 또는 높이임을 의미합니다. 다른 장치는 기본적으로 다른 방향으로 작동할 뿐만 아니라 사용자가 장치를 회전할 때 런타임에 방향이 변경될 수 있습니다.

해결:

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

밀도 독립 픽셀(dp):

밀도 독립적인 방식으로 레이아웃 치수 또는 위치를 표현하기 위해 UI 레이아웃을 정의할 때 사용해야 하는 가상 픽셀 단위입니다. 밀도 독립형 픽셀은 160dpi 화면의 물리적 픽셀 하나에 해당하며, 이는 "중간" 밀도 화면에 대해 시스템에서 가정하는 기준 밀도입니다. 런타임 시 시스템은 사용 중인 화면의 실제 밀도를 기반으로 필요에 따라 dp 단위의 모든 크기 조정을 투명하게 처리합니다. dp 단위를 화면 픽셀로 변환하는 것은 간단합니다: px = dp * (dpi / 160). 예를 들어 240dpi 화면에서 1dp는 1.5개의 물리적 픽셀과 같습니다. 밀도가 다른 화면에서 UI가 적절하게 표시되도록 하려면 애플리케이션의 UI를 정의할 때 항상 dp 단위를 사용해야 합니다.

참조: Android 개발자 사이트

답변자 : Mina Gabriel

dpdip 입니다. 모든 것(여백, 패딩 등)에 사용합니다.

{text-size}에만 sp 를 사용하십시오.


다른 화면 밀도에서 동일한 크기를 얻기 위해 Android는 런타임에 이러한 단위를 픽셀로 변환하므로 사용자가 수행해야 할 까다로운 수학이 없습니다.


다양한 화면 크기에서 px , dpsp 의 차이점을 확인하십시오.

여기에 이미지 설명 입력

출처: Android 프로그래밍: Big Nerd Ranch Guide

답변자 : rds

정의

px 또는 점은 실제 화면 의 픽셀입니다.

dpi 는 물리적 화면의 인치당 픽셀 수이며 디스플레이의 밀도를 나타냅니다.

Android는 여러 밀도에 별칭 이름을 제공합니다.

  • ldpi(낮음) ~120dpi
  • mdpi(중간) ~160dpi
  • hdpi(높음) ~240dpi
    • 2015년 대부분의 기기가 여기에 있습니다.
  • xhdpi(초고) ~320dpi
    • 애플 아이폰 4/5/6, 넥서스 4
  • xxhdpi(초고화질) ~480dpi
    • 넥서스 5
  • xxxhdpi(초고도) ~640dpi

dip 또는 dp밀도 독립 픽셀입니다 . 즉, 물리적 밀도에 따라 더 많거나 더 적은 픽셀에 해당합니다.

  • 1dp = mdpi에서 1px

여기에 이미지 설명 입력

sp 또는 sip스케일 독립 픽셀 입니다.

설정

>

손쉬운 사용

에서 큰 텍스트 옵션이 켜져 있을 때 크기가 조정됩니다.

  • 1sp = 1dp
  • 1sp = 1.2dp(접근성 큰 텍스트 포함)

무엇을 사용할 것인가?

텍스트 크기에 sp 를 사용합니다.

다른 모든 것에 dp 를 사용하십시오.

답변자 : Community Wiki

dpidpsp 변환하기 위해 아래 공식을 계산했습니다. 여기에 이미지 설명 입력

답변자 : sms247

소스 1

소스 2

소스 3 : (소스 3의 데이터는 아래에 제공됨)

XML에 정의된 차원 값입니다. 측정 단위가 뒤에 오는 숫자로 차원이 지정됩니다. 예: 10px, 2in, 5sp. Android에서 지원하는 측정 단위는 다음과 같습니다.

DP

Density-independent Pixels - 화면의 물리적 밀도를 기반으로 하는 추상 단위입니다. 이 단위는 160dpi(인치당 도트 수) 화면을 기준으로 하며 1dp는 대략 1px입니다. 고밀도 화면에서 실행할 때 1dp를 그리는 데 사용되는 픽셀 수는 화면의 dpi에 적합한 요소로 확대됩니다. 마찬가지로 저밀도 화면에서는 1dp에 사용되는 픽셀 수가 축소됩니다. dp-to-pixel의 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하는 것은 아닙니다. px 단위 대신 dp 단위를 사용하는 것은 레이아웃의 보기 크기를 다양한 화면 밀도에 맞게 적절히 조정하는 간단한 솔루션입니다. 즉, 다양한 장치에서 UI 요소의 실제 크기에 대한 일관성을 제공합니다.

sp

Scale-independent Pixels - dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기가 조정됩니다. 글꼴 크기를 지정할 때 이 단위를 사용하는 것을 권장하므로 화면 밀도와 사용자의 기호에 맞게 조정됩니다.

태평양 표준시

포인트 - 화면의 물리적 크기를 기준으로 한 인치의 1/72입니다.

픽셀

픽셀 - 화면의 실제 픽셀에 해당합니다. 실제 표현은 장치마다 다를 수 있으므로 이 측정 단위는 권장되지 않습니다. 각 장치는 인치당 픽셀 수가 다를 수 있으며 화면에서 사용할 수 있는 총 픽셀 수가 더 많거나 적을 수 있습니다.

mm

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

~에

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

참고: 차원은 이름 속성(XML 파일의 이름이 아님)에 제공된 값을 사용하여 참조되는 단순 리소스입니다. 따라서 하나의 요소 아래에 있는 하나의 XML 파일에서 차원 리소스를 다른 단순 리소스와 결합할 수 있습니다.

답변자 : Joe Plante

기본적으로 px가 적용되는 유일한 시간은 1px이며, 이는 구분선의 경우와 같이 화면에 정확히 하나의 픽셀을 원하는 경우입니다.

>160dpi에서는 2-3픽셀,

>120dpi에서는 0으로 반올림됩니다.

답변자 : Nirav Ranpara

픽셀

픽셀 - 화면의 실제 픽셀에 해당합니다.

dp 또는 딥

밀도 독립 픽셀 - 화면의 물리적 밀도를 기반으로 하는 추상 단위입니다. 이 단위는 160dpi 화면을 기준으로 하므로 160dpi 화면에서 1dp는 1픽셀입니다.

dp 사용:

밀도 독립성 - 응용 프로그램은 밀도가 다른 화면에 표시될 때 사용자 인터페이스 요소의 물리적 크기(사용자 관점에서)를 보존할 때 "밀도 독립성"을 달성합니다. (ie) 이미지는 다른 유형의 화면에서 동일한 크기(확대 또는 축소가 아님)로 보여야 합니다.

sp

스케일 독립 픽셀 - 이것은 dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기도 조정됩니다.

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

답변자 : Arunjyothis

px와 dp 사이의 관계를 어디에 사용합니까?

밀도 독립 픽셀(dp)

밀도 독립적인 방식으로 레이아웃 치수 또는 위치를 표현하기 위해 UI 레이아웃을 정의할 때 사용해야 하는 가상 픽셀 단위입니다. 위에서 설명한 바와 같이 밀도 독립 픽셀은 160dpi 화면의 물리적 픽셀 하나와 동일하며, 이는 "중간" 밀도 화면에 대해 시스템에서 가정하는 기준 밀도입니다. 런타임 시 시스템은 사용 중인 화면의 실제 밀도를 기반으로 필요에 따라 dp 단위의 모든 크기 조정을 투명하게 처리합니다. dp 단위를 화면 픽셀로 변환하는 것은 간단합니다.

픽셀 = dp * (dpi / 160).

예를 들어 240dpi 화면에서 1dp는 1.5개의 물리적 픽셀과 같습니다. 밀도가 다른 화면에서 UI가 적절하게 표시되도록 하려면 애플리케이션의 UI를 정의할 때 항상 dp 단위를 사용해야 합니다.

픽셀에서 dp로 또는 그 반대로 이해하는 것은 매우 중요합니다(특히 크리에이티브 팀에 정확한 dp 값을 제공하기 위해).

dp = px * 160 / dpi MDPI = 160 dpi || Therefore, on MDPI 1 px = 1 dp For example, if you want to convert 20 pixel to dp, use the above formula, dp = 20 * 160 / 160 = 20. So, 20 pixel = 20 dp. HDPI = 240 dpi - So, on HDPI 1.5 px = 1 dp XHDPI = 320 dpi - So, on XHDPI 2 px = 1 dp XXHDPI = 480 dpi - So, on XXHDPI 3 px = 1 dp For example, let us consider Nexus 4. If 24 pixels to be converted to dp and if it is a Nexus 4 screen, developers can convert it to dp easily by the following calculation : dp = 24 * 160 / 320 = 12 dp Screen dimension: 768 x 1280 pixel resolution (320 ppi or 320dpi) Optional (screen size): 4.7" diagonal
  • 크리에이티브 팀에서 짝수의 모든 픽셀 값을 얻으십시오. 그렇지 않으면 0.5를 곱하는 동안 정밀도 손실이 발생합니다.

픽셀

위에 설명되어 있습니다. 레이아웃 파일에서 피하십시오. 그러나 px가 필요한 경우가 있습니다. 예를 들어 ListView 구분선. px는 모든 화면 해상도에 대한 구분선으로 1픽셀 라인을 제공하는 데 더 좋습니다.

sp

글꼴 크기에는 sp를 사용합니다. 그러면 장치 글꼴 크기가 변경되는 동안 응용 프로그램 내부의 글꼴만 변경됩니다(즉, 디스플레이 -> 장치의 글꼴). 앱 내부에 정적 크기의 글꼴을 유지하려면 글꼴 크기를 dp로 지정할 수 있습니다. 그런 경우에는 절대 바뀌지 않습니다. 개발자는 일부 특정 화면에 대해 이러한 요구 사항을 얻을 수 있습니다. 따라서 개발자는 sp 대신 dp를 사용할 수 있습니다. 다른 모든 경우에는 sp가 권장됩니다.

답변자 : Zephyr

pxdp 의 차이를 볼 수 있으며 pxdp 가 다른 화면에서 동일한 물리적 크기를 보장할 수 없다는 것도 알 수 있습니다.

여기에 이미지 설명 입력

답변자 : Atish Agrawal

텍스트의 크기 및 모양과 관련된 모든 것은 sp 또는 pt 사용해야 합니다. 반면 컨트롤의 크기, 레이아웃 등과 관련된 모든 것은 dp 와 함께 사용해야 합니다.

그 자리에서 dpdip 을 모두 사용할 수 있습니다.

답변자 : bharal

dp만 사용하겠습니다.

글자 크기에 'sp'를 쓴다는 얘기가 많은데, 그 점은 고맙게 생각하지만 디자인적인 측면에서는 옳지 않다고 생각한다. 사용자가 이상한 글꼴 크기를 선택했다면 결국 디자인을 깨뜨릴 수 있으며 사용자는 결국 자신의 삶의 선택이 아니라 앱을 비난하게 될 것입니다.

또한 160dpi 태블릿에서 sp-글꼴 앱을 사용하면 모든 것이 확장된다는 것을 알 수 있습니다. 하지만 글꼴은 그에 비해 작아 보일 것입니다. 좋지 않은 모습입니다.

"sp" 글꼴에 대한 아이디어는 좋은 마음을 가지고 있지만 좋지 않은 생각입니다. 모든 것을 위해 dp를 고수하십시오.

답변자 : Kushal

sp = 독립 픽셀 스케일

dp = dip = 밀도 독립 픽셀

dpi = 인치당 도트 수

sp 사용을 피해야 합니다.

여러 화면을 지원 하려면 dp 를 사용해야 합니다.

Android는 다양한 화면 해상도를 지원합니다.

  • ldpi(낮음) ~120dpi
  • mdpi(중간) ~160dpi
  • hdpi(높음) ~240dpi
  • xhdpi(초고화질) ~320dpi
  • xxhdpi(초고화질) ~480dpi
  • xxxhdpi(초고도) ~640dpi

120dp ldpi 장치에는 1인치 크기에 120픽셀이 있습니다.

다른 밀도도 마찬가지...

우리는 소프트웨어 엔지니어로서 다음 변환 공식을 사용해야 합니다.

픽셀 = dp * (밀도 / 160)

따라서 240dpi 장치의 1dp는 = 1 * (240/160) = 3/2 = 1.5픽셀이 됩니다.

그리고 480dpi 장치의 1dp는 = 1 * (480/160) = 3픽셀입니다.

이 1.5 및 3픽셀 지식을 사용하여 소프트웨어 엔지니어는 다양한 밀도에 대한 레이아웃을 설계할 수 있습니다.

모든 장치의 화면 매개변수를 확인하려면:

DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); Toast.makeText( this, "4:" + metrics.heightPixels + "," + metrics.density + "," + metrics.densityDpi, Toast.LENGTH_LONG).show();

답변자 : auselen

공식 문서에서 복사한 답변에서 "사용자의 글꼴 크기 기본 설정 "으로 언급된 dpsp 단위의 차이점은 Settings->Accessibility->Large Text 옵션을 변경하여 확인할 수 있습니다.

Large Text 옵션을 사용하면 텍스트가 1.3 배 커집니다.

private static final float LARGE_FONT_SCALE = 1.3f;

이것은 물론 packages/apps/Settings 에 있기 때문에 공급업체에 따라 다를 수 있습니다.

답변자 : Arunendra

dpi -

  • 인치당 도트 수
  • 화면의 픽셀 밀도를 측정합니다.

픽셀 - 픽셀

  • 화면 픽셀 매핑용

포인트 - 포인트

  • 실제 화면 크기와 관련하여 약 1/72인치입니다.

in - 인치 - 물리적 화면 크기 기준(1인치 = 2.54cm).

mm- 밀리미터 - 물리적 화면 크기 기준.

sp - 스케일 독립 픽셀.

  • 사용자의 글꼴 크기 기본 설정을 기반으로 합니다.
  • 글꼴은 'sp'여야 합니다.

딥-

  • 딥 == dp
  • 밀도 독립 픽셀.
  • 화면 밀도에 따라 다릅니다.
  • 160dpi 화면에서 1dp = 1픽셀입니다.
  • 텍스트 글꼴 크기를 제외하고 dp를 사용하십시오.

표준에서는 dp와 sp가 사용됩니다. 글꼴 크기는 sp이고 나머지는 dp입니다.

단위 변환 공식:

픽셀 = dp * (dpi / 160);

Density Bucket -> Screen Display => 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

답변자 : shijin

커뮤니티 위키에서 답변을 읽으십시오. 아래에는 위의 답변 외에도 고려해야 할 몇 가지 정보가 나와 있습니다. 대부분의 Android 개발자는 앱을 개발하는 동안 이것을 놓치므로 이 점을 추가합니다.

sp = 독립 픽셀 스케일

dp = 밀도 독립 픽셀

dpi = 밀도 픽셀

나는 위의 답변을 통해 ... 정확하게 찾지 못했습니다. 텍스트 크기는 sp, 레이아웃 경계는 dp - 표준. 그러나 대부분의 장치에서 부주의하게 사용하는 경우 텍스트 크기에 대한 sp는 레이아웃을 깨뜨릴 것입니다.

sp는 장치의 텍스트 크기를 사용하는 반면 dp는 장치 밀도 표준의 크기를 사용합니다(장치에서 변경하지 않음) 100sp 텍스트는 장치에 설정된 글꼴 크기에 따라 화면의 80% 또는 화면의 100%를 차지할 수 있습니다.

여기에 이미지 설명 입력

레이아웃 경계에 sp를 사용할 수도 있습니다. 작동합니다 :) 전체 텍스트에 sp를 사용하는 표준 앱 없음

UX를 고려한 텍스트 크기는 sp와 dp를 사용합니다.

  • 도구 모음의 텍스트에 sp를 사용하지 마십시오(dp를 사용하여 다양한 화면 크기에 사용할 수 있는 Android 치수를 사용할 수 있음)
  • 작은 경계 버튼, 매우 작은 텍스트 등의 텍스트에는 sp를 사용하지 마십시오.

어떤 사람들은 가독성을 높이기 위해 휴대폰에서 큰 FONT 크기를 사용합니다. 하드코딩된 작은 텍스트를 제공하는 것은 UX 문제가 될 것입니다. 필요한 경우 텍스트에 sp를 넣지만 사용자가 설정을 변경할 때 레이아웃이 깨지지 않는지 확인하십시오.

마찬가지로 모든 차원을 지원하는 단일 앱이 있는 경우 xxxhdpi 자산을 추가하면 앱 크기가 크게 늘어납니다. 그러나 이제 xxxhdpi 전화가 일반적이므로 최소한 사이드바, 도구 모음 및 하단 표시줄의 아이콘에 대해 xxxhdpi 자산을 포함해야 합니다. 모든 화면 크기에 대해 균일하고 더 나은 품질의 이미지를 가지려면 벡터 이미지로 이동하는 것이 좋습니다.

또한 사람들은 휴대폰에서 사용자 정의 글꼴을 사용합니다. 따라서 글꼴이 없으면 간격 등의 문제가 발생할 수 있습니다. 사용자 정의 글꼴의 텍스트 크기 12sp는 기본 글꼴보다 약간의 픽셀이 더 필요할 수 있습니다.

Android의 화면 밀도 및 기본 밀도 세부 정보는 Google 개발자 사이트를 참조하세요. https://developer.android.com/training/multiscreen/screendensities

답변자 : Ravi Vaghela

Android 화면 크기small , medium , large , extra large , double-extratriple-extra 추가 범주로 그룹화됩니다. 화면 밀도는 화면 영역(예: 인치) 내의 픽셀 수입니다. 일반적으로 인치당 도트 수(dpi)로 측정됩니다. 화면 밀도는 낮음, 중간, 높음 및 매우 높음으로 그룹화됩니다. 해상도는 화면의 총 픽셀 수입니다.

  • dp: 밀도 독립 픽셀, 화면 밀도에 따라 다릅니다. 160dpi 화면에서 1dp = 1픽셀입니다. 글꼴 크기를 제외하고 항상 dp를 사용하십시오.
  • 딥: 딥 == dp. 이전 Android 버전에서는 dip이 사용되었고 나중에 dp로 변경되었습니다.
  • sp: 독립 픽셀 크기 조정, 사용자의 글꼴 크기 기본 설정에 따라 크기가 조정됩니다. 글꼴은 sp를 사용해야 합니다.
  • px: 화면 픽셀에 매핑되는 일반적인 표준 픽셀입니다.
  • in: 인치, 실제 화면 크기에 관한 것입니다.
  • mm: 물리적 화면 크기에 관한 밀리미터.
  • pt: 실제 화면 크기와 관련하여 1/72인치.

단위 변환 공식

 px = dp * (dpi / 160)

장치의 dp에서 px로

다음 예는 더 잘 이해하는 데 도움이 될 수 있습니다. 스케일링은 버킷 크기 120(ldpi), 160(mdpi), 240(hdpi), 320(xhdpi), 480(xxhdpi), 640(xxxhdpi)를 기준으로 발생합니다. Google에서 권장하는 디자인 비율은 ldpi:mdpi:hdpi:xhdpi:xxhdpi의 경우 3:4:6:8:12입니다.

150px X 150px 이미지가 차지합니다.

  • 150dp X 150dp 화면 공간(mdpi)
  • 100dp X 100dp 화면 공간(HDPI)
  • xhdpi의 75dp X 75dp 화면 공간

모든 Android 기기에서 균일한 UI 디자인을 원할 때 다음 DPI 계산기를 사용하여 이미지 크기 및 기타 치수를 수정할 수 있습니다.

Java의 DPI 계산기

/* Program output LDPI: 165.0 X 60.0 MDPI: 220.0 X 80.0 HDPI: 330.0 X 120.0 XHDPI: 440.0 X 160.0 XXHDPI: 660.0 X 240.0 XXXHDPI: 880.0 X 320.0 */ public class DPICalculator { private final float LDPI = 120; private final float MDPI = 160; private final float HDPI = 240; private final float XHDPI = 320; private final float XXHDPI = 480; private final float XXXHDPI = 640; private float forDeviceDensity; private float width; private float height; public DPICalculator(float forDeviceDensity, float width, float height){ this.forDeviceDensity = forDeviceDensity; this.width = width; this.height = height; } public static void main(String... args) { DPICalculator dpiCalculator = new DPICalculator(240,330,120); dpiCalculator.calculateDPI(); } private float getPx(float dp, float value) { float px = dp * (value / forDeviceDensity ); return px; } private void calculateDPI() { float ldpiW = getPx(LDPI,width); float ldpiH = getPx(LDPI,height); float mdpiW = getPx(MDPI,width); float mdpiH = getPx(MDPI,height); float hdpiW = getPx(HDPI,width); float hdpiH = getPx(HDPI,height); float xdpiW = getPx(XHDPI,width); float xdpiH = getPx(XHDPI,height); float xxdpiW = getPx(XXHDPI,width); float xxdpiH = getPx(XXHDPI,height); float xxxdpiW = getPx(XXXHDPI,width); float xxxdpiH = getPx(XXXHDPI,height); System.out.println("LDPI: " + ldpiW + " X " + ldpiH); System.out.println("MDPI: " + mdpiW + " X " + mdpiH); System.out.println("HDPI: " + hdpiW + " X " + hdpiH); System.out.println("XHDPI: " + xdpiW + " X " + xdpiH); System.out.println("XXHDPI: " + xxdpiW + " X " + xxdpiH); System.out.println("XXXHDPI: " + xxxdpiW + " X " + xxxdpiH); } }

추가 정보는 다음 링크를 참조하십시오.

http://javapapers.com/android/difference-between-dp-dip-sp-px-in-mm-pt-in-android/

답변자 : Dan Borza

Android에서 사용하는 공식은 다음과 같습니다.

픽셀 = dp * (dpi / 160)

여기서 dpi는 다음 화면 밀도 중 하나입니다. 가능한 모든 밀도 목록을 보려면 여기로 이동하십시오.

"DENSITY_*" 상수를 정의합니다.

  • ldpi(낮음) ~120dpi
  • mdpi(중간) ~160dpi
  • hdpi(높음) ~240dpi
  • xhdpi(초고) ~320dpi
  • xxhdpi(초고화질) ~480dpi
  • xxxhdpi(초고도) ~640dpi

여기 에서 가져옵니다.

이것은 화면 dpi를 알고 있는 경우 px와 dp 사이를 번역할 때 많은 혼란을 해결합니다.

따라서 hdpi 화면에 대해 60dp의 이미지를 원한다고 가정하고 60dp의 물리적 픽셀 크기는 다음과 같습니다.

px = 60 * (240 / 160)

답변자 : DPC

  • px - CSS, JavaScript 등에서 사용되는 것과 동일한 1픽셀
  • sp - 스케일 독립 픽셀
  • dip - 밀도 독립 픽셀

일반적으로 sp는 글꼴 크기에 사용되는 반면 dip은 다른 글꼴 크기에 사용됩니다(dp라고도 함).

답변자 : Mixaz

다양한 화면 해상도에 맞게 Android 앱 UI를 디자인하는 방법에 대한 좋은 기사를 발견했으며 이 분야에서 검색하는 누군가를 위해 여기에 남겨두고 싶습니다. 예, Google 문서(위의 게시물에서 언급됨)에 어떻게든 설명되어 있다는 것을 알고 있습니다. 읽었지만 나에게는 좋지 않았습니다(예, 제가 너무 멍청할 수 있습니다). 다양한 화면 크기를 처리할 수 있는 레이아웃을 디자인하는 방법이 불분명했습니다. 나는 다른 화면에 대해 "유연한" UI 레이아웃을 구현해야 할 때 DP 개념 등을 싫어합니다. (Hey iOS 개발자 - 네, 맞습니다. 스토리보드 개념입니다.)

Android는 UI 개념이 나쁘지는 않지만 불행히도 iOS 스토리보드 기능이 부족합니다. Android에서 유연한 UI를 디자인하는 것은 (기껏해야) 쉬운 일이 아닙니다.

다음은 다양한 화면 크기에 대한 레이아웃을 만들기 위해 Android에서 수행할 작업을 이해하는 데 도움이 되는 기사입니다.

JMSTUDIO 블로그:- Android 앱 화면 크기 결정

다양한 화면 크기에 맞게 Android 앱용 UI를 디자인하는 방법

다양한 화면 크기에 맞게 앱 UI를 디자인하려면 초기 디자인이 각 화면 크기에 필요한 최소 공간을 충족해야 합니다. Android는 일반화된 각 화면 유형에 대한 최소 크기(dp)를 정의합니다. 다음은 Android 화면 크기 지침입니다. Android의 최소 화면 크기(dp) 화면 크기를 dp로 가져오면 Android 앱 UI를 디자인하는 것만으로는 충분하지 않습니다. 각 화면 크기에 대해 밀도별로 그래픽과 비트맵 이미지를 준비해야 합니다. 다음은 Android 화면 밀도 지침입니다. Android 밀도 가이드라인(dpi)

계산을 쉽게 하기 위해 4가지 일반 밀도 사이의 3:4:6:8 비율을 따를 수 있습니다. ldpi 장치에 대해 36x36 픽셀 그림을 생성하면 나머지 밀도 그림 크기는 mdpi에 대해 48x48, hdpi에 대해 72x72, xhdpi에 대해 96x96이 됩니다.

Photoshop에서 Android 앱 UI를 디자인하는 방법

많은 디자이너들은 밀도 독립 단위인 dp로 인해 Photoshop 또는 다른 픽셀 기반 그래픽 디자인 도구에서 Android 앱 UI를 디자인하는 데 문제가 있습니다. 디자이너는 dp를 픽셀에 매핑하는 방법을 모릅니다. Google은 또한 dp 및 픽셀 변환에 대한 기본 공식을 제공하지만 명확한 Android UI 디자인 가이드를 제공하지 않습니다.

Android의 정의에 따르면 1pd는 160dpi 장치(mdpi)에서 1px와 같습니다. 따라서 mdpi 밀도가 있는 xlarge Android 장치용 Android 앱을 디자인하려고 합니다. 픽셀 단위로 UI 크기를 너비 960픽셀, 높이 720픽셀로 정의할 수 있습니다. 동일한 매핑 규칙을 따르면 다음과 같은 Android 앱 화면 크기 UI 디자인 지침을 얻을 수 있습니다.

픽셀 가이드라인의 Android 앱 화면 크기

추가됨 : "유연한" UI에도 관심이 있다면 이 라이브러리를 살펴보세요 . 새로운 크기 단위를 제공하는 Android SDK - sdp(scalable dp). 이 크기 단위는 화면 크기에 따라 조정됩니다 SDP 라이브러리에 대한 답변에서도 언급됨).

ADDED2 Google은 마침내 iOS Storeboard UI 개념의 유용성을 이해했으며 Android용 ConstraintLayout : ConstraintLayout으로 반응형 UI 빌드

답변자 : IntelliJ Amiya

1) dp: (density independent pixels)

dp의 한 단위로 표현되는 픽셀의 수는 화면 해상도가 증가함에 따라 증가합니다(인치당 도트/픽셀이 더 많은 경우). 반대로 해상도가 낮은 장치에서는 dp 단위로 표시되는 픽셀 수가 감소합니다. 이것은 상대적인 단위이기 때문에 비교할 기준선이 있어야 합니다. 이 기준선은 160dpi 화면입니다. 이것은 방정식입니다: px = dp * (dpi / 160).


2) sp: (scale independent pixels)

이 단위는 화면 dpi(dp와 유사)와 사용자의 글꼴 크기 기본 설정에 따라 조정됩니다.


3) px: (pixels)

화면의 실제 픽셀 또는 점.

 

자세한 내용은 방문할 수 있습니다

Android 개발자 가이드 > 차원
Android 개발자 가이드 > 화면

답변자 : Rajesh

Android의 화면 크기 ldpi , mdpi , hdpi , xhdpi , xxhdpixxxhdpi 범주로 그룹화됩니다. 화면 밀도 는 화면 영역(예: 인치) 내의 픽셀 양입니다. 일반적으로 인치당 도트 수( dpi )로 측정됩니다.

PX(Pixels):

  • 화면 픽셀에 매핑되는 일반적인 표준 픽셀입니다. px 는 절대 픽셀을 의미합니다. 너비 또는 높이에 대한 절대 픽셀 측면에서 제공하려는 경우에 사용됩니다. 권장하지 않습니다.

DP/DIP(Density pixels / Density independent pixels):

  • dip == dp . 이전 Android 버전에서는 dip이 사용되었고 나중에 dp 변경되었습니다. px 대안입니다.
  • px 는 절대값이기 때문에 절대 사용하지 않습니다. px 를 사용하여 너비 또는 높이를 설정하고 해당 응용 프로그램을 다른 화면 크기의 장치에 다운로드하는 경우 해당 보기는 화면 원래 크기에 따라 늘어나지 않습니다.
  • dp px 대신 사용하는 것이 좋습니다. 너비와 높이를 언급하여 화면 크기에 따라 동적으로 늘리고 줄이려면 dp 사용하십시오.
  • dp/dip 하면 Android는 160픽셀 크기의 화면을 기준으로 픽셀 크기를 자동으로 계산합니다.

SP(Scale independent pixels):

  • 사용자의 글꼴 크기 기본 설정에 따라 크기가 조정됩니다. 글꼴은 sp 사용해야 합니다.
  • 다양한 화면 크기에 맞게 글꼴 크기를 언급할 때 sp 사용하십시오. dp 와 비슷합니다. sp 사용하여 화면 크기에 따라 동적으로 늘리거나 줄입니다.

Android 설명서는 다음과 같이 말합니다.

치수를 지정할 때 항상 dp 또는 sp 단위를 사용하십시오. dp 밀도에 관계없이, 화소 (160)의 화소의 물리적 크기에 대응 dpi . sp 는 동일한 기본 단위이지만 사용자가 선호하는 텍스트 크기(크기에 독립적인 픽셀)에 따라 크기가 조정되므로 텍스트 크기를 정의할 때 이 측정 단위를 사용해야 합니다.

답변자 : Android Developer

휴대폰 화면은 픽셀(px) 이라고 하는 수천 개의 작은 점으로 구성됩니다. 픽셀은 그림을 구성하는 가장 작은 요소입니다. 그림이나 글자를 만드는 데 필요한 픽셀 수가 많을수록 더 선명해지며 스마트폰 화면을 더 쉽게 읽을 수 있습니다.

화면 해상도는 화면의 픽셀 수로 측정됩니다. 화면 해상도는 장치를 구입할 때 일반적으로 사용되는 사양이지만 실제로 Android용으로 디자인할 때는 그다지 유용하지 않습니다. 화면을 픽셀 단위로 생각하면 터치 장치에서 정말 중요한 물리적 크기 개념이 무시되기 때문입니다.

밀도 독립 픽셀(dp 또는 dip)을 통해 디자이너는 대상 장치의 해상도나 밀도에 관계없이 예상대로 나타나는 자산을 만들 수 있습니다.

밀도 독립 픽셀(dp 또는 dip)은 기준 밀도 또는 160dpi(인치당 도트 수)에서 1픽셀과 같습니다.

1픽셀/1dp = 160dpi/160dpi

2픽셀/1dp = 320dpi(2x)/160dpi

어디,

dpi는 인치당 도트 수입니다.

따라서 320dpi에서 1dp는 2px와 같습니다.

공식

픽셀/dp = dpi/160dpi

인치당 도트 수(dpi)는 디스플레이 화면의 선명도(즉, 조명된 점의 밀도)를 측정한 것입니다. 동일한 수의 픽셀이 다른 공간에 퍼져 있기 때문에 주어진 그림 해상도에 대한 인치당 도트 수는 전체 화면 크기에 따라 다릅니다.

밀도 독립 픽셀로 작업하면 픽셀 해상도는 같지만 공간 크기가 다른 두 개의 장치가 있는 상황을 처리하는 데 도움이 됩니다. 태블릿과 휴대폰의 픽셀 해상도가 각각 1280 x 800픽셀(160dpi)과 800 x 1280픽셀(320dpi)이 동일한 경우를 가정해 보겠습니다.

이제 태블릿은 기준 밀도(160dpi)에 있기 때문에 물리적 및 밀도 독립 픽셀 크기는 1280 x 800으로 동일합니다. 반면에 전화기는 픽셀 밀도가 더 높으므로 밀도 독립 픽셀이 물리적 픽셀보다 절반입니다. 픽셀. 따라서 전화에는 400 x 640 밀도 독립 픽셀이 있습니다. 따라서 밀도와 무관한 픽셀을 사용하면 태블릿이 휴대전화보다 훨씬 더 많은 공간을 가지고 있다는 것을 정신적으로 더 쉽게 상상할 수 있습니다.

마찬가지로 화면 크기는 비슷하지만 픽셀 밀도가 다른 두 개의 장치가 있는 경우 하나는 800 x 1280픽셀(320dpi)이고 다른 하나는 400 x 640픽셀(160dpi)인 경우 완전히 정의할 필요가 없습니다. 두 장치에 대해 동일한 밀도 독립 픽셀 측면에서 자산을 측정할 수 있으므로 이 두 장치에 대해 다른 레이아웃을 사용합니다.

800 x 1280 픽셀(320dpi)=400 x 640 밀도 독립 픽셀(dp)

400 x 640픽셀(160dpi)=400 x 640 밀도 독립 픽셀(dp)

배율 독립 픽셀(sp) 은 글꼴 크기의 기본 단위입니다. 접근성을 위해 Android에서는 사용자가 기기의 글꼴 크기를 맞춤설정할 수 있습니다. 텍스트를 읽는 데 문제가 있는 사용자는 장치의 글꼴 크기를 늘릴 수 있습니다. 일반적으로 이 옵션은 휴대폰 또는 태블릿의 글꼴 크기 아래에 있는 디스플레이 설정에서 찾을 수 있습니다. 접근성 설정을 통해서도 사용할 수 있는 경우가 많습니다.

스케일 독립 픽셀을 사용하면 장치의 글꼴 크기가 일반 또는 100%일 때 16sp가 16dp와 정확히 동일합니다. 그러나 장치의 글꼴 크기가 큰 경우(예: 125%) 16 sp는 20dp 또는 1.25 곱하기 16으로 변환됩니다.

글꼴 크기의 단위로 dp를 사용하면 사용자가 장치의 글꼴 크기를 사용자 정의했는지 여부에 관계없이 해당 텍스트 조각은 특정 물리적 크기를 갖습니다. sp 단위를 사용하면 시각 장애가 있는 사람들에게 더 나은 경험이 될 것입니다.

참고자료 : 유다시티 , 구글

답변자 : lava-lava

픽셀 밀도

화면 픽셀 밀도와 해상도는 플랫폼에 따라 다릅니다. 장치 독립형 픽셀 및 확장 가능한 픽셀은 플랫폼 간에 설계를 수용할 수 있는 유연한 방법을 제공하는 단위입니다.

픽셀 밀도 계산

인치에 맞는 픽셀의 수를 픽셀 밀도라고 합니다. 고밀도 화면은 저밀도 화면보다 인치당 픽셀 수가 더 많습니다...

인치에 맞는 픽셀의 수를 픽셀 밀도라고 합니다. 고밀도 화면은 저밀도 화면보다 인치당 픽셀 수가 더 많습니다. 결과적으로 동일한 픽셀 치수의 UI 요소는 저밀도 화면에서 더 크게 나타나고 고밀도 화면에서 더 작게 나타납니다.

화면 밀도를 계산하려면 다음 방정식을 사용할 수 있습니다.

화면 밀도 = 화면 너비(또는 높이)(픽셀) / 화면 너비(또는 높이)(인치)

고밀도 대 저밀도 디스플레이

밀도 독립

화면 픽셀 밀도와 해상도는 플랫폼에 따라 다릅니다. 장치 독립형 픽셀 및 확장 가능한 픽셀은 플랫폼 간에 설계를 수용할 수 있는 유연한 방법을 제공하는 단위입니다.

픽셀 밀도 계산 인치에 맞는 픽셀 수를 픽셀 밀도 라고 합니다. 고밀도 화면은 저밀도 화면보다 인치당 픽셀 수가 더 많습니다...

밀도 독립성 은 밀도가 다른 화면에 UI 요소가 균일하게 표시되는 것을 말합니다.

dp (" dips "라고 발음함)로 작성된 밀도 독립 픽셀 은 모든 화면에서 균일한 크기를 갖도록 확장되는 유연한 단위입니다. 머티리얼 UI는 밀도 독립 픽셀을 사용하여 밀도가 다른 화면에 일관되게 요소를 표시합니다.

  1. 밀도 독립으로 표시되는 저밀도 화면
  2. 밀도 독립으로 표시되는 고밀도 화면

전체 텍스트 읽기 https://material.io/design/layout/pixel-density.html

답변자 : A.Saini

sp: 독립 픽셀 크기 조정

사용자가 장치에서 사용하는 글꼴 크기에 따라 자동으로 크기가 조정되므로 텍스트와 함께 사용해야 합니다.

px: 픽셀 또는 그림 요소는 화면의 단일 지점입니다.

답변자 : lalit vasan

픽셀(px) – 화면의 실제 픽셀에 해당합니다. 너비 또는 높이에 대한 절대 픽셀 측면에서 제공하려는 경우에 사용됩니다.

밀도 독립 픽셀(dp 또는 dip) – 화면의 물리적 밀도를 기반으로 하는 추상 단위입니다. 이 단위는 160dpi 화면을 기준으로 하므로 160dpi 화면에서 1dp는 1픽셀입니다. dp-to-pixel의 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하는 것은 아닙니다. 참고: 컴파일러는 "dip"와 "dp"를 모두 허용하지만 "dp"가 "sp"와 더 일관성이 있습니다.

Scale-independent Pixels(sp) – 이것은 dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기가 조정됩니다. 글꼴 크기를 지정할 때 이 단위를 사용하는 것이 좋으므로 화면 밀도와 사용자 선호도에 맞게 조정됩니다.

항상 dp와 sp만 사용하십시오. 글꼴 크기는 sp, 나머지는 dp입니다. 밀도가 다른 Android 장치와 호환되는 UI를 만듭니다. https://www.google.com/design/spec/layout/units-measurements.html#units-measurements-density-independent-pixels-dp- 에서 픽셀 및 dp에 대해 자세히 알아볼 수 있습니다.

소스 URL:- http://www.androidtutorialshub.com/what-is-the-difference-between-px-dp-dip-sp-on-android/

답변자 : Rahul

이 질문에 답하기 전에 먼저 단위 수를 줄이겠습니다. 여기 있습니다. dp 또는 dip 은 모두 동일하며 밀도 독립 픽셀 로 알려져 있습니다.

1. px - 픽셀을 나타냅니다. 픽셀은 화면의 한 점, 한 점입니다. 일반적으로 모바일 산업에서는 PPI(인치당 픽셀 수)로 측정됩니다. 화면 해상도는 PPI에 정비례하며 인치당 픽셀 수가 많을수록 화면 해상도가 높아집니다.

당신은 크기 200 픽셀 * 200 픽셀의 이미지를 그릴 경우 예를 들어, 그것의 외관은 낮은 해상도의 장치에 비해 고해상도 장치 달라야합니다. 그 이유는 저해상도 휴대전화의 이미지가 고해상도 기기보다 200픽셀 더 크게 보이기 때문입니다.

아래 이미지는 다른 폰에서 동일한 이미지의 해상도를 보여주고 있습니다 -

  • 높은 화면 해상도의 전화
  • 여기에 이미지 설명 입력
  • 화면 해상도가 낮은 전화
  • 여기에 이미지 설명 입력

2. dip 또는 dp - 화면의 물리적 밀도를 기반으로 하는 추상 단위. 한 DP가 160 dpi의 화면에서 하나 개의 화소가 있으므로 이러한 장치는 160 dpi의 화면에 상대적이다. dp-to-pixel의 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하는 것은 아닙니다. "밀도 독립성"은 밀도가 다른 화면에서 UI 요소가 균일하게 표시되는 것을 말합니다.

  • 80px(왼쪽 이미지)와 80dp(오른쪽 이미지)를 보여주는 이미지 . 체크아웃 차이.

여기에 이미지 설명 입력

dp는 밀도가 160인 화면의 물리적 픽셀 하나와 같습니다. dp를 계산하려면:

dp = (픽셀 단위 너비 * 160) / 화면 밀도

3. sp - 확장 가능한 픽셀을 나타냅니다. 일반적으로 sp 는 UI의 텍스트에 사용되며 sp 는 글꼴 설정을 유지합니다. 사용자가 SP 30보다 큰 폰트를 선택한 경우, 예를 들어, 자동 - 스케일은 사용자 환경에있어서 큰 표시되도록한다.

출처 : Here

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

반응형