2011-12-06 4 views
0

안드로이드의 res 폴더와 해상도가 낮은 장치를 사용하여 res 폴더를 지정하면 ldpi 폴더에서 동일한 이름의 자산을 자동으로 가져오고 싶습니다. 이렇게하면 작은 화면에 다른 자산을 만들 수 있습니까?Res 폴더 및 dpi?

모든 크기의 장치에서 작동하려면 4 개의 폴더 (ldpi - xhdpi) 모두에 애셋이 있어야합니까? 또는 모든 장치에서 애셋이 모두 동일한 경우 하나의 폴더에 애셋을 둘 수 있습니까?

자산이 저해상도 장치의 경우에만 다른 경우, 다른 모든 폴더의 내용을 모두 동일하게 유지해야합니까?

답변

1

정확하게 작동하는 방법에 대한 이해를 위해 this article을 철저히 읽으 시겠습니다. 근본적으로 가장 근접한 크기의 리소스를 찾을 수 있습니다. 그렇기 때문에 모든 폴더를 반드시 미러링 할 필요가 없습니다.

the qualifiers section particularly에서이 인용문은 잘 설명합니다.

는 자원 안드로이드 시스템의 후비는 실행시에 사용하는 경우, 그것은 자원을 "최고 일치"를 determing에 특정 논리를 사용하여,주의하십시오. 즉, 사용하는 한정자는 모든 경우에 시스템을 현재 화면 구성과 정확히 일치시킬 필요가 없으므로 시스템 에서 사용할 수 있습니다. 특히 한정자 크기를 기준으로 자원을 선택할 때 이 더 좋은 자원이없는 경우 시스템은 현재 화면보다 작은 화면 용으로 설계된 자원을 사용합니다 (예 : 대형 화면은 일반 크기를 사용합니다 필요한 경우 리소스를 화면에 표시). 그러나 현재 사용 가능한 리소스가 이고 현재 화면보다 큰 경우 시스템에서는 해당 리소스를 사용하지 않으며 장치와 일치하는 다른 리소스가없는 경우 응용 프로그램이 중단됩니다 (예 : 모든 레이아웃 리소스에 xlarge 한정자이지만 장치는 일반 크기의 화면입니다). 시스템에서 리소스를 선택하는 방법에 대한 자세한 내용은 Android에서 가장 일치하는 리소스를 찾는 방법을 참조하십시오.

0

질문을 세 가지 질문으로 나눌 수 있습니다.

난 그냥 낮은 해상도 장치와, 안드로이드의 고해상도 폴더로 명확히 할

, 그들은 자동으로 LDPI 폴더에서 같은 이름의 자산을 얻을? 이렇게하면 더 작은 화면에 대해 다른 자산을 만들 수 있습니까?

확실히 간단합니다. 그것이 바로 시스템의 목적입니다. 동일한 이름의 애셋을 사용하는 경우 Android는 화면의 dpi에 따라 기기에 가장 적합한 것을 자동으로 선택합니다.

모든 크기의 기기에서 을 사용하려면 4 개 폴더 (ldpi - xhdpi)의 애셋이 있어야합니까? 또는 자산이 모든 장치에서 모두 동일한 경우 하나의 폴더에 자산 만 가질 수 있습니까?

모든 폴더의 애셋에 모든 장치에 의 작업이 필요하지 않습니다.그러나 이 제대로 작동하려면이 필요합니다. 모든 폴더에 애셋이 필요하며 폴더에 따라 크기가 다릅니다. 자산 크기가 하나 인 폴더 하나만 사용하는 경우에도 여전히 작동합니다. 귀하의 자산은 안드로이드 자체로 확장 될 수 있습니다. 이로 인해 일부 자산은 일부 더 높거나 낮은 dpi 장치에서보기 흉하게 보일 수 있습니다. 스케일링으로 인해 전체 레이아웃이 엉망이 될 수 있다는 사실은 말할 것도 없습니다.

그리고 무엇 내 자산의 경우

는 모든 이 동일한 자산을 그래서 나는 다른 각 폴더의 내용을 반영 할 필요가 않습니다 저해상도 장치에만 다른가요?

"저해상도 장치에서만 다를 수 있습니다"라는 말은 전체 자산이 다른 것을 의미합니까? 예를 들어 빨간색 이미지가 아닌 파란색 이미지? 그렇다면 같은 이름을 다른 폴더의 자산으로 사용해야합니다. 실제 내용은 다를 수 있지만 OS는 자산을 가져올 때만 이름을 확인합니다.

http://developer.android.com/guide/practices/screens_support.html

: 여러 화면 크기를 지원하는이 가이드에게 시험을 제공하는 방법에 대한 자세한 정보를 들어