2013-04-09 4 views
1

3 가지 크기의 리소스가 있습니다. 그 중 하나를 drawable-hdpi에 넣고, 하나는 drawable-mdpi에 넣고 하나는 drawable-xhdpi에 넣습니다. 이제 ldpi (또는 가능하다면 tvdpi 또는 nodpi) 장치에서 응용 프로그램을 실행하면 어떻게 될지 궁금합니다. drawable 폴더에 하나의 리소스를 추가하는 것이 더 좋을까요?화면 밀도에 대한 리소스가없는 경우 화면에서 어떤 일이 발생합니까?

+0

http://stackoverflow.com/questions/11752997/how-mdpi-hdpi-xhdpi-folder-works –

+1

Android에서 자동으로 최적의 드로어 블 맞춤을 선택합니다. 현재 장치에 대한 – scf

답변

3

시스템에서 "최적의"사용 가능한 리소스를 선택하고 적절하게 크기를 지정합니다. ldpi를 사용하면 hdpi가 소요되어 반으로 줄일 수 있습니다.

tvdpi를 사용하면 나일지도 모르지만 나는 보통 그것이 나를 위해 무엇을 골 랐는지에 놀랐습니다.

+0

어쨌든 리소스가 지정되지 않은 경우 예외가 생기지 않습니까? – Xander

+1

@ 멜린 : drawable의 경우, 맞습니다. 다른 대부분의 자원 유형은 변환 할 자동 방법이 없으므로 완전 일치가 필요합니다. 이 경우 리소스를 요청하고 일치하는 것이 없으면'ResourceNotFoundException'이 발생합니다. – CommonsWare

+0

@CommonsWare 좋아, 그거야, 고마워! – Xander

2

대부분의 기기에서 Android는 다른 드로어 블 폴더에서 가장 가까운 사용 가능한 리소스를 선택합니다 (예 : mdpi를 사용할 수없는 경우 ldpi 또는 hdpi에서 선택).

그러나 일부 장치에서는 버그가있는 구현으로 인해 시스템에서 다른 폴더의 리소스를 가져올 수 없습니다. 가장 좋은 방법은

, 당신은 항상 어떤 한정자없이 당신은 그리기 폴더에 넣어 이미지에 대한 조심해야/(당김, 값 등)을 완전히 자격이 폴더에

+0

"그러나 일부 장치, 특히 삼성에서는 시스템이 다른 폴더의 리소스를 선택하지 않습니다." - 응? – CommonsWare

+0

@CommonsWare 나는 작년에 안드로이드 chatroom에서 토론 한 내용에 근거하여, 일부 삼성 장치가 다른 리소스 폴더에서 리소스를로드하지 못했기 때문에 누군가의 앱이 계속 손상되는 경우가있었습니다. 나는 그것을 찾으려고 노력하고있다. 그러나 SO의 채팅 검색은 내가 정말로 기억하지 않는 꽤 정확한 말씨를 필요로한다. –

+0

이러한 장치는 CTS, AFAIK를 통과하지 못할 것이므로 실제로 이것이 사실이라고 믿는 데 심각한 어려움이 있습니다. 이 문제가있는 특정 장치를 식별 할 수 있으면 알려주십시오. 몇 가지 조사를하고 싶습니다. – CommonsWare

0

각 자원의 사본을 보관해야한다 . unqualified 폴더의 이미지는 mdpi의 이미지와 동일하므로 정규화되지 않은 폴더에 큰 이미지가 있고 xhdpi 전화의 ImageView에 할당하려고하면 Android에서 이미지를 확대하려고 시도합니다. "XXXXXX 바이트 할당에서 메모리 부족"을 만듭니다.