2017-11-22 15 views
1

우리는 우리의 응용 프로그램에 여러 화면을 지원하는 기능을 제공하기 위해 "dp"를 사용해야한다는 것을 배웠습니다. 하지만 실제로는 잘 작동하지 않습니다.android density buckets에 관한 문제

예제를 보여 드리겠습니다. 두 개의 화면이 있다고 가정 해 보겠습니다. 화면 A의 해상도는 160 * 160 픽셀이고 길이와 너비는 1 인치입니다. 화면 B는 1600 * 1600 픽셀의 해상도와 길이와 너비가 10 인치입니다. 밀도 버킷의 정의에 따르면 두 화면 모두 mdpi (중간) ~ 160dpi로 떨어집니다. 따라서이 화면을 사용하는 두 전화기 모두 동일한 레이아웃과 드로어 블을 사용하게됩니다. 그러나 우리는 160dpi의 경우 1dp가 1px로 변환 될 수 있음을 알고 있습니다. 즉 화면 A의 너비는 160dp이고 화면 B의 너비는 1600dp입니다. 그리고 우리가 300 dp의 너비로 설정된 이미지를 화면에 표시하려고하면 그 결과는 확실히 다릅니다. 그래서 안드로이드가 여러 화면을 지원하기 위해 dp에 의존하는 방법이 궁금하거나이 개념에 대한 오해가 있다면?

답변

0

dp/dip (밀도와 무관 한 픽셀) - 화면의 인치/밀도에 따라 픽셀에 따라 다릅니다. 화소의

비율 DP와

  1. 화면 크기 160 픽셀 -> 1DP = 1 픽셀
  2. 화면 크기 49 픽셀 -> 1DP = 300dp와 도면 용

10px 그것이 차지하는 300 160 x 160px 해상도의 픽셀 및 1600 x 1600px 해상도의 3000 픽셀. 해상도에 대한 자세한 내용은

: Android Screen Resolution

+0

난 당신이 위의 실수를 생각한다. 화면 크기 1600 픽셀은 반드시 1dp = 10 픽셀을 의미하지는 않습니다. 1dp = 10 픽셀은 1600dpi에서만 발생합니다. 화면 A와 화면 B는 모두 160dpi입니다. – jeep