android-ui - Android 的dip与px之间转换的问题
ringa_lee
ringa_lee 2017-04-17 16:24:22
0
3
723
ringa_lee
ringa_lee

ringa_lee

모든 응답(3)
Ty80

이건 최근에 제가 이해한 내용을 간략하게 설명하겠습니다. 틀린 부분이 있으면 정정해 주세요.

  • dp와 px의 변환에 관한 변환 공식을 살펴보세요

    dpi = 화면 가로(세로) 방향의 픽셀 수/화면의 가로(세로) 크기
    dp = (px * 160) / (가로(세로) 방향의 픽셀 수 화면/가로(세로)크기(세로)크기)

화면 크기와 해상도는 아무 상관이 없다고 말할 수 있나요? 그들의 영향력은 직접적이지 않고 간접적이다.

  • 이렇게 이해하시면 괜찮습니다. DP는 적응을 위해 탄생했습니다. 과거에는 레이아웃 파일에서 버튼 너비를 20px로 설정했는데, 해상도가 다른 휴대폰에서 애플리케이션을 디버깅할 때 크기가 다르기 때문에 수동으로 조정해야 합니다. 매우 피곤합니다. 너비가 20dp인 경우 시스템은 내부 변환 후 다른 해상도에서도 동일한 크기를 표시하므로 눈금자를 사용하여 측정할 때 크기가 동일합니다.

마지막 질문은 제가 비슷한 작업을 해본 적이 없어서 답변해드릴 수 없지만, 공식 TV 개발 지침 문서를 참고하시면 됩니다

迷茫

간단히 말하면 dpi(인치당 도트 수)는 인치당 픽셀 수가 아니라 인치당 픽셀 수를 의미합니다. 화면 크기를 인치당 픽셀 수로 계산합니다. Ppi는 dpi를 통해 계산되지 않습니다.
dp와 px의 변환 공식은 다음과 같습니다.
px = dp * 밀도
밀도 값은 화면의 논리적 밀도를 나타냅니다. 이 논리적 밀도를 어떻게 계산하나요? 일반적으로 160dpi의 밀도 값은 1입니다. 예를 들어 1920*1080의 밀도는 일반적으로 12X9입니다. 실제 사용 시에는 휴대폰의 상태 표시줄과 타이틀 표시줄이 차지하는 공간도 고려해야 합니다.
크기가 20dp라고 가정하면 320480의 픽셀은 20 2 = 40px이고 19201080의 픽셀은 20 12 = 240px입니다. 어떻게 같은 크기일 수 있습니까? .
픽셀 px를 얻은 후 화면의 x 및 y 방향 ppi를 기준으로 컨트롤의 크기가 최종 결정됩니다.
위에서 언급한 값은 DisplayMetrics를 통해 얻을 수 있는데,
density = mContext.getResources().getDisplayMetrics().density
화면 x축 방향의 ppi = mContext.getResources() .getDisplayMetrics().xdpi
화면 y축 방향의 ppi = mContext.getResources().getDisplayMetrics().ydpi

刘奇

합리적으로 행동하세요. . 100% 레이아웃 라이브러리를 직접 사용하세요. . . dp 이는 사기적인 설정입니다. . . 이 DP에서 얼마나 많은 기술직과 디자인 소녀들이 구타당해 죽었는지. . .

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿