2012-04-24 2 views
0

내 앱은 반지름이 반경이 35 픽셀로 지정된 둥근 공으로 구성됩니다. 사용자 뮤즈는 볼이 다른 볼과 충돌하는 것을 방지합니다.해상도의 독립성을 위해 이미지의 크기를 조절하려면

필자는이 이미지의 비트 맵으로 사용하려는 72ppi 해상도의 800x850 벡터 그래픽을 그렸습니다.

drawable-ldpi, -mdpi 및 -hdpi 폴더의 이미지 크기를 조정하여 모든 장치에서 비트 맵의 ​​크기가 같고 충돌 감지가 잘 작동하도록하려면 어떤 크기로 조정합니까? 즉, 앱에서 볼을 35 픽셀로 계산하지만 화면에 작거나 큰 이미지가 표시되어 충돌이 완전히 잘못되어 사용자가 무슨 일이 일어나고 있는지 알 수 없습니다.

정말 많은 도움이되지 않으므로 도움을 받으실 수 있습니다. android developer guide에서

답변

2

: 4 : 6 : 8 배율 네 일반화 밀도 사이

서로 다른 밀도의 대체 비트 맵 드로어 블을 만들려면 3을 따라야합니다. 당신이 중 밀도 화면의 경우 48x48 픽셀 (실행기 아이콘의 크기를)의 비트 맵 그릴 수있는 경우 예를 들어, 모든 다른 크기는 같아야합니다

36x36 for low-density 
48x48 for medium-density 
72x72 for high-density 
96x96 for extra high-density 
또한

, 최고 중 하나 여러 화면 해상도를 지원하는 습관은 "응용 프로그램 코드에서 하드 코딩 된 픽셀 값을 사용하지 마십시오"입니다.

응용 프로그램이 런타임에 픽셀 값을 처리하므로 Additional Density Considerations 및 그 아래 섹션을 읽을 수 있습니다.

+0

그 링크는 통찰력이 있었지만 몇 가지 혼란이 있습니다. hdpi 이미지 만 제공하고 다른 이미지는 제공하지 않는다고 가정합니다. 응용 프로그램이 mdpi 장치에서 실행되면 응용 프로그램은 자동으로 이미지의 크기를 줄입니다. 각 이미지마다 별도의 스케일링을 할 필요가 없다는 의미가 아닙니까? 나는 이것이 또한 적은 메모리를 소비 할 것이라고 생각한다. 아니면 최상의 결과를 얻으려면이 작업을 수행하고 메모리는 절충입니까? –

+0

그리고이 이미지를 hdpi 비율로 비율 조정하면 BitmapFactory inDensity 속성을 사용하여 밀도 속성을 명시 적으로 지정해야하는지 명확히하고 싶습니다. –

+0

hdpi 이미지 만 제공하고 mdpi 장치에서 응용 프로그램을 실행하면 응용 프로그램이 자동으로 이미지의 크기를 줄입니다. 마찬가지로 mdpi 이미지 만 있고 hdpi 장치에서 앱을 실행하는 경우 앱이 이미지를 확대합니다. 크기 조정은 이미지에 아티팩트를 유발할 수 있으므로 이미지가 가장 잘 보이도록하기 위해 다른 화면 해상도를위한 대체 버전을 포함해야합니다. 약간의 기억력을 절약 할 수 있지만, 최상의 결과를주는 것은 아닙니다. 그리고 마지막 코멘트에 대한 질문에 확신이 없습니다 ... – dennisg