2013-02-20 2 views
8

Android에서 두 요소 사이의 거리를 설정하려고합니다. 내가 설정 한 여백은 1dp이며 거리가 내가 원하는 것보다 많다고 생각했습니다. 나는 0.5dp가 괜찮을 거라고 생각했다. 노력하면서 소수점 마진을 설정할 수 있습니까? 그렇다면 지원되는 최소 dp는 무엇입니까?Android에서 십진수로 dp 설정

+0

당신이 경우 (1 MDPI 디스플레이에 대한 논리적 밀도는) layout param의 값을위한 타입을 살펴 보자. 모두 param은 int이고, 특히 마진이다. – Triode

+0

dp는 밀도와 무관 한 픽셀을 의미하며 픽셀은 화면에서 처리 할 수있는 가장 작은 크기로 작은 크기 일 수 있다고 생각합니까? 당신이 줄 수있는 가장 작은 값은 1px이며, 더 작은 크기를 처리 할 수 ​​있기 때문에 일부 장치에서는 여백이 줄어들지 만 적어도 ppi 장치에서는 현재 같은 크기를 반영합니다 –

답변

9

그래, 0.5dp 또는 원하는 십진수를 사용할 수 있지만주의해야합니다. dp가 픽셀로 변환되면 디스플레이 논리 밀도가 곱해지고 반올림됩니다.

hdpi 디스플레이보다 dp = 0.1 인 경우 (int) (0.1 * 1.5 + 0.5) = 1px가됩니다.

(1.5 hdpi에 표시를위한 논리적 밀도는) 경우 DP = 0.5 MDPI 디스플레이에 당신이 얻을 (INT) (0.5 * 1 + 0.5) = 1 픽셀의

+5

오류 ... 나는 당신의 수학이 꺼져 있다고 생각합니다. (int) (0.1 * 1.5 + 0.5) = (int) (0.15 + 0.5) = (int) (0.65) = 0px. –

+0

@StevenByle 너의 수학 또한 꺼져있어. 그것은 0.75가 아님 0.65;) –

+4

@AndroidKiller 당신은 첫 번째 코멘트에서 0.75라고 말했고 지금은 0.075이어야한다고 말하고 있습니까? 제발 구글 "0.1 * 1.5 + 0.5"또는 계산기에 넣어, 당신은 그것이 0.65임을 볼 수 있습니다 ... –