2010-06-21 1 views
4

필자는 그래픽 리소스를 DPI에 맞게 확장 할 수있는 게임을 만드는 방법에 대한 연구를하고 있습니다.iPhone OS 또는 Android에서 DPI를 감지 할 수 있습니까?

이렇게하려면 자산의 크기를 적절히 조정하기 위해 장치의 DPI를 쿼리 할 수 ​​있어야합니다.

2D 게임이며 아트 스타일은 임의의 크기 조정에 매우 적합합니다. 내가 고해상도/dpi의 콤보로 어떻게 할 것인지의

예 :

아이폰 /의 iTouch는 320 × 480에서 (163 dpi)로 - 텍스트는 정상 크기

아이폰 4가 될 것입니다, 640x960 (326 dpi)로에서 - 텍스트는 두 배가됩니다

iPad, 768x1024 (132 dpi) - 큰 화면의 공간을 활용하려면 텍스트의 크기를 최소 크기로 설정해야합니다.

iPhone OS에서 화면의 DPI를 쿼리하는 방법이 있습니까?

(그리고 보조 노트로 - 모든 안드로이드 기기에서이 가능합니까?)

답변

1

당신은 DisplayMetrics 클래스와 안드로이드에이 정보를 가져올 수 있습니다.

+0

감사합니다, 그것은 나는 거의 반 년간에도이 정보를 필요로하지만, 지금은 저를 위해 여기 한 됐어요 때문이다. :) – Jakooistra

+0

비록 제가 물어 보았던 주된 질문은 아직 IOS에 관한 것이 었습니다. 하드 코딩 이외의 다른 해결책은 아직 없다고 생각합니다. 고맙게도 iOS가 DPI를 폼 팩터에 매우 가깝게 묶었다는 점을 감안할 때 예상했던 문제는별로 없습니다. – Jakooistra

1

일반적으로 DPI를 알 필요가 없으므로 DPI를 직접 얻을 수있는 방법이 있는지 잘 모르겠습니다. UIScreen 클래스는 축척 비율을 노출합니다. iPhone의 경우 < = 3GS 및 iPad는 1.0이어야하며 iPhone 4의 경우 2.0이어야합니다.

컴파일 사이트 :

UIScreen *theScreen = [UIScreen mainScreen]; 
float scaleFactor = 1.0f; 
if ([theScreen respondsToSelector:@selector(getScale)]) { 
    scaleFactor = theScreen.scale; 
} 
// use scaleFactor to determine size of fonts/whatever 

그러나, 새로운 OS가 화면 해상도를 다른 관련 구현하는 방법은 일반적으로 DPI에 따라 사용자 정의 규모가 없음을 의미합니다. 이미지와 같은 요소는 크기가 커지거나 특별히 고해상도의 이미지가 자동으로 선택되며 드로잉 작업도 자동으로 처리됩니다 (예 : 1 포인트 선 그리기는 아이폰 4에 2 픽셀 선을 그립니다). 글꼴은 비슷하게 처리 될 수 있습니다. 글꼴 특정 항목을 발견하지 못했습니다. 정보에 대한 새로운 문서 읽기 최대 : 이것에 대한

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/SupportingResolutionIndependence/SupportingResolutionIndependence.html#//apple_ref/doc/uid/TP40007072-CH10