본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] 대체 리소스는 어떤 것을 쓸까? 에 대한 실험 결과

by 돼지왕 왕돼지 2013. 9. 20.
반응형


 안드로이드, 대체 리소스는 어떤 것을 쓸까? 에 대한 실험 결과

 

[android] 대체 리소스는 어떤 것을 쓸까? 에 대한 실험 결과


모든 resource 가 제대로 박혀 있을 때는 당연히 자신의 resource 를 가져다 쓰는 것이 당연하다.


환경구성


아래 폴더에 각각 drawable.png 이라는 이미지 파일을 만들고, 각 이미지에는 문자로 해상도를 표기한다.

drawable

     drawable-nodpi

     drawable-ldpi

     drawable-mdpi

     drawable-hdpi

     drawable-xhdpi



실험 1 : xhdpi 단말에서 xhdpi resource 를 지웠다. 어느 것을 가져다 쓸까?

예상 : 가장 밀접한 해상도인 hdpi 혹은 아예 default 가 될 수 있는 drawable, drawable-nodpi 를 가져다 쓸 것이다.

결과 : hdpi 것을 가져다 쓴다.



실험 2 : 실험 1에 이어, 이번에는 hdpi 까지 지워보았다. 어느 것을 가져다 쓸까?

예상 : 위에서 가장 근접한 해상도 것을 가져다 썼으니, 이번에는 mdpi 것을 가져다 쓰지 않을까?

결과 : 미쳤다... 이상하게 no-dpi 것을 가져다 쓴다.. 이건 뭐지..? 1단계 낮은 녀석을 가져다 써서 안 되면 바로 no-dpi 로 가는 것일까? 


실험 3 : 실험 2에 이어 no-dpi 것도 지워보자. 어느 것을 가져다 쓸까?

예상 : 그냥 drawable 을 가져다 쓸까?

결과 : 이번에는 mdpi 를 가져다 사용한다.. 뭔가 알기 어려운 규칙이로세. 


실험 4 : mdpi 도 지워보자.

예상 : 이번에야말로 ldpi 를 가져다 쓰겠지?!!!!

결과 : 이번에는 그냥 drawable 을 가져다쓴다..


정리!!!


xhdpi 에 대한 우선순위는 xhdpi -> hdpi -> no-dpi -> mdpi -> drawable -> ldpi 







자 이번엔 hdpi 장비를 가지고 실험해보자.


실험 1 : hdpi 단말에서 hdpi resource 를 지웠다.

예상 : xhdpi 것을 가져다 쓴다.

결과 : 빙고!!!


실험 2 : 실험 1에 이어 xhdpi resource 도 지웠다.

예상 : mdpi 것을 가져다 쓴다.

결과 : 빙고!!!!


실험 3 : 심험 2에 이어 mdpi resource 도 지웠다.

예상 : ldpi 것을 가져다 쓴다.

결과 : drawable 을 가져다 쓰네? 안드로이드.. 이 녀석 대체 뭐 하는 녀석일까??


더 이상 실험하지 않겠다.


정리!!


hdpi 에 대한 우선순위는 hdpi -> xhdpi -> mdpi -> drawable.







최종 결론!!


일반적으로 자신의 resource 가 없을 경우에는 1차적으로 가장 근접한 resource 를 가져다 쓴다.

그리고 이 때 higher resolution 을 가져다 쓴다.

xhdpi 는 hdpi 것을, hdpi 는 xhdpi 것을.


그 다음부터는 두서없이 적용되는 특성이 있으니,

가급적 가장 많이 쓰이는 xhdpi 와 hdpi 에 대한 resource 와 layout 은 준하도록 한다.




참고로!!


이 실험은 drawable 에 대한 실험이었으며, 일반적으로 다른 resource 적용도 비슷하게 될 것이라 예상은 되지만, 지금의 실험에서 보았듯이 적용되는 rule 이 조금 이상한 관계로 다른 resource 들의 적용 순위에 대한 내용도 확신은 못 하겠다. ㅠ



반응형

댓글