2013-10-01 5 views
1

저는 Android 개발에 익숙하며 모든 해결책에 맞게 응용 프로그램을 적용하려고합니다. 최근에 딥 (dip)이라는 개념에 대해 들었지만 본부의 목적을 이해하지 못합니다. 화면 해상도에 상관없이 동일한 물리적 크기로 무언가를 표시 할 수 있습니다.dip을 사용하는 목적은 무엇입니까?

하지만 다른 화면 밀도에서는 작동하지 않는 것이 있습니다. 즉, 너비가 80dip 인 이미지를 정의하면 결과는 160dpi 화면과 320dpi 화면에서 동일하지 않습니다. 부품을 장치에 적용 할 때마다 코드를 작성할 때마다이 장치의 목적을 실제로 얻지 못합니다.

XML에서 레이아웃을 정의하려면 어떻게해야합니까? (코드가 없어도 필요하지 않습니다 : /) 모든 장치에서이보기가 동일하거나 거의 비슷합니까?

왜 그런 종류의 단위가 아닌 레이아웃 (xml)에서 비율을 사용할 수 없는지 알 수 없습니다.

도움 주셔서 대단히 감사합니다. .

PS : 제 영어 :(

답변

3

(역시 DP라고 함) DIP의 개념에 관계없이, 디스플레이의 물리적 픽셀 밀도의 동일한 크기의 가상 픽셀을 가지고있다을

드려 죄송 160 개 화소의

는 1DP = 1 개 픽셀/인치 (중 밀도 디스플레이 — MDPI)

높은 픽셀 밀도에서

, 1DP 하나 이상의 물리적 픽셀은 낮은 밀도에서, 그것의 크기로 1DP 이상 소요 하나의 물리 cal 픽셀.

크기를 px로 지정하면 실제 픽셀을 지정하고 고밀도 장치에서는 동일한 개체가 더 작게 표시됩니다.

이미지는 일반적으로 이미지가 발견 된 리소스 폴더를 기준으로 확장됩니다. .png 파일을 /res/drawable에 넣으면 시스템에서 mdpi —의 크기가 160 픽셀/인치의 디스플레이 밀도로 올바르게 크기가 있다고 가정합니다. 실제 디스플레이가 240 픽셀/인치 (hdpi) 인 경우, 시스템은 이미지를로드 할 때 이미지를 1.5 배 (= 240/160) 배율로 자동 조절합니다. 결과는 모든 화면 밀도에서 동일한 실제 크기로 이미지가 표시됩니다.

밀도가 다른 리소스 폴더 (/res/drawable-mdpi, /res/drawable-hdpi 등)를 사용하여 농도에 따라 다른 그래픽을 제공 할 수 있습니다. 이것은 일반적으로 시스템 스케일링이 이미지 품질을 부적절하게 감소시킬 때 수행됩니다. /res/drawable-nodpi에 그래픽을 배치하여이 비율을 억제 할 수도 있습니다.

자세한 내용은 Supporting Different Densities

을 참조하십시오.
관련 문제