Vector Drawable
Last updated
Last updated
Drawable이란?
단어 뜻으로는 "그릴 수 있는" 이며, drawable 폴더는 이미지 파일(jpg, png 등)뿐만 아니라 그래픽을 어떻게 표현할 지를 xml파일을 통해 만들 수 있다.
이런 xml파일을 통해 여러 표현이 가능한데, StateList Drawable : 어떤 상태에 따라 이미지를 바꾸거나 Shape Drawable : 어떤 모양(도형)을 그리거나 Vector Drawable : 아이콘이나 애니메이션으로 표현이 가능하다.
이 중 VectorDrawable은 XML 파일에서 연관된 색상 정보와 함께 점, 선, 곡선의 조합으로 정의되는 벡터 그래픽
벡터 그래픽은 path 및 group 개체로 구성되는 트리 계층 구조로 정의됨 - 각 path에는 객체 윤곽선의 도형이 포함되고 group에는 변환에 관한 세부 정보가 포함됩니다. - 모든 경로는 XML 파일에 표시된 순서대로 그린다.
화면 품질이 손상되지 않고 크기를 조정
BitMap 이미지
픽셀이라는 작은 점들의 격자로 구성
각 픽셀마다 색상 정보를 개별적으로 저장
JPG, PNG, GIF 등의 형식으로 저장
VectorDrawable
수학적 함수와 알고리즘으로 이미지를 정의
점, 선, 곡선의 위치와 속성을 수식으로 저장
SVG, AI 등의 형식으로 저장
1. 크기 변경 시 품질
비트맵: 확대 시 픽셀이 커지면서 이미지가 깨짐
벡터: 수학적 계산으로 그려지므로 어떤 크기로 변경해도 선명함 유지
2. 파일 크기와 성능
비트맵: 모든 픽셀의 정보를 저장하므로 파일 크기가 큼
벡터: 수식만 저장하므로 파일 크기가 작음
3. 적합한 사용 사례
비트맵: 사진처럼 복잡하고 섬세한 이미지에 적합
벡터: 로고, 아이콘처럼 단순한 도형과 선으로 구성된 이미지에 적합
BitMap
실제 사진이나 복잡한 이미지 표현 필요할 때
높은 수준의 디테일이 필요한 경우
VectorDrawable
앱 아이콘, UI 요소, 단순한 로고
여러 화면 밀도에 대응해야 할 때
APK 크기를 줄이고자 할 때
BitMap은 모든 픽셀 정보를 개별적으로 저장하는 반면, VectorDrawable는 수학적 공식으로 이미지를 정의하기 때문에 더 효율적이고 유연한 확장이 가능합니다.