마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

해상도별 이미지 크기 질문 드려요!

0 추천
안녕하세요. 이 아침부터 드릴 질문은

해상도 별 이미지 크기를 어떻게 관리 하시나 해서 질문글을 올립니다.

아이콘 같은경우에는 48x48, 72x72 등 기준 사이즈 별로 각각의 미지를

drawable-???? 해상도별 폴더에 넣는 다는것을 알았는데요.

그 외에 다른 길쭉한 버튼이라거나 넓적한 버튼 등등 그외에 다른 이미지들은 어떻게 관리 하시나해서요.

직접 해상도별로 테스트해서 사이즈를 잡으신다음 폴더별로 넣어서 관리하시는지...

제 생각에는 제일 큰 사이즈의 이미지를 하나 만들고 이미지가 들어갈 레이아웃을 weight로 크기를 준 다음

이미지를 적용 시켜줘도 될것 같은데 이런식으로 구현 하시는 분도 있으신가요?

헌데 이런식으로 하면 이미지 크기가 커져서 용량을 쓸데 없이 잡아 먹을것 같기도 한데...

또 따로 폴더별로 이미지를 각각 넣어줘도 용량 낭비일것 같고...

가장 효율적으로 각각의 해상도에 이미지 크기를 적용 시키는 방법이 뭐가 있을까요?

 

궁금증 1. 아이콘외에 다른 이미지들은 직접 해상도 별로 크기를 알아내어 적용 시키시는지

궁금증 2. 그렇다면 하나의 이미지로 각각의 해상도에 대응 하는 방법은 없는지

 

많은 프로그래머분들의 답변을 기다립니다!
익명사용자 님이 2015년 4월 7일 질문

2개의 답변

0 추천
단순히 길쭉/넓적한 버튼이라면 9-patch 이미지를 사용하면 될 것 같습니다.

하나의 이미지로 적용 가능하지만, 대신 해상도별 버튼의 크기를 지정해야 할 수도 있습니다.
가랑비 (10,530 포인트) 님이 2015년 4월 7일 답변
하나의 이미지로 해상도별 버튼의 크기를 지정한다는 것이 어떤 의미 인가요?
저는 레이아웃에 weight 속성을 주어서 화면 비율로 레이아웃이 늘어나게 지정을 해놓았습니다.
그러면 지정된 이미지 크기보다 작은 해상도에서는 별 무리 없이 나오는데 더 큰 해상도에서는 이미지가 늘어나서 이상하게 보입니다.
그래서 생각 했던게 아예 대형 해상도에 맞는 이미지 크기를 만든다음 그 이미지만 사용 하는걸 생각 했었는데 이렇게 사용 하시는분이 계신건지..
이런식으로 하면 APK 크기도 커질것 같고 정말 큰 이미지를 불러오때는 oom도 발생 시킬 수 있을것 같아서요.
제일 좋은 방법은 각 해상도별로 이미지 크기를 만든다음 각 폴더에 넣어 쓰는게 가장 일반적이고 가장 좋은 방법일까요?
위에 말씀드린 9-patch 이미지를 사용하면, 작은 이미지를 큰 해상도에서 늘여서 사용했을 때 깨지는 현상을 방지할 수 있습니다. 화면 비율로 늘어나게 하셨다면 해상도별 버튼 크기를 따로 지정하지 않아도 될 것 같구요. 나인패치 이미지를 쓸 수 있다면 쓰는 것이 용량을 조금이나마 줄일 수 있는 방법이 될 수 있구요. 각 해상도 별로 만들지 나인패치를 쓸 것인지는 개발 단계에서의 선택이라고 봅니다. (디자인 하시는 분이 따로 있다면 나인패치 가능한 부분은 나인패치로 만들어 달라고 요청합니다. 또는 개발 중간에도 나인패치 이미지 적용이 더 효율적이라 판단되면 추가 요청하곤 합니다.) 나인패치 이미지를 쓰더라도 비율로 크기를 정하는 것이 아니라 특정 크기를 지정할 것이라면, 저같은 경우 dimen 태그로 각 해상도별 크기를 지정한 파일을 해상도별 폴더 (values-mdpi / values-xhdpi / values-xxhdpi 등) 로 관리하는 방법을 사용합니다.
0 추천
그냥 버튼 같은 경우고, 크기가 문제 안된다면 저도 레이아웃에 dp값이나 weight로 조정해서 씁니다.

(단 소스로 그려서 씁니다. 이미지파일이 아닌)

 

이미지의 경우 왠만하면 xxx부터 h나 x정도까지 각각 만들어서 써요.

 

그리고 어짜피 해당 사용자 스마트폰 해상도에 맞게 그 이미지만 들어갑니다.

 

다른 이미지까지 가져가지않아요. 예를들어 각 폴더에 a.png파일을 넣어두고, 사용자가 xxhdpi해상도 스마트폰이면

설치할 때 xxhdpi 폴더에 있는 a.png파일 하나만 복사해서 사용합니다.

 

다른 폴더는 a.png파일이 xxhdpi폴더에 없을 때만 가져다 씁니다. 결국은 하나만!
핫샷 (1,180 포인트) 님이 2015년 4월 7일 답변
답변감사합니다!!
만약 각 폴더별로 해당 이미지 크기를 조정하여 넣는다고 한다면 apk파일로 빌드 할때 크기에 영향을 주지 않나요? 영향을 미치는 크기가 크지는 않겠지만 리소스가 계속 추가 되다 보면 늘어날것 같아서요. 그래서 다른분들은 하나의 이미지로 다른 해상도에 마춰서 쓰시는 분들도 계신가 해서 질문 드려보았습니다~! 핫샷님은 폴더별로 이미지를 넣어서 해상도 별 이미지 대응 하시나요?
...