Java 코드에서 DIP의 치수를 지정하는 올바른 방법은 무엇입니까?
다음 코드에서와 같이 DIP를 사용하여 XML 레이아웃에서 인터페이스 요소의 크기를 설정할 수 있다는 것을 알았습니다.android:layout_width="10dip"
그러나 모든 Java 인터페이스는 정수를 인수로 취하므로 DIP에서 차원을 지정할 방법이 없습니다. 이것을 계산하는 올바른 방법은 무엇입니까?
DisplayMetrics
클래스의 속성 밀도를 사용해야하지만 올바른 방법이라고 생각했습니다.
이 수식에 항상 의지 할 수 있습니까?
픽셀 * DisplayMetrics.density = dip
안드로이드 어딘가에 변환을위한 유틸리티 함수가 있습니까?
감사합니다. 로마인, 어떻게 든이 부분을 간과했습니다. 주제와 관련된 두 가지 질문이 있습니다 : - 밀도가 항상 양쪽 치수에서 동일합니까? 그것은 (이것은 단지 하나의 값이기 때문에) 그렇지만 아마도 이것을 계산하는 다른 공식이있을 것입니다. - 저에게 변환을 수행 할 API가 없습니까? 내 코드에 다음 코드를 써야하나요?XML 레이아웃 코드에서 "dip"을 단위로 지정할 수 있습니다. 왜 Java API에서는 불가능합니까? –
두 밀도에서 밀도가 동일하다고 가정 할 수 있다고 생각합니다. DisplayMetrics.density는 실제 화면 밀도가 아닌 논리적 밀도 **입니다 (논리적 밀도와 약간 다를 수 있음). 변환 API에 관해서는 함수 호출에 사용하기 위해 dip을 픽셀로 변환하는 'Util.dip'과 같은 도우미 메서드를 작성하는 것이 쉽습니다. Java에서 유닛을 그런 방식으로 처리하는 것이 더 깔끔합니다. –