Bitmap과 Vector
사진을 컴퓨터에 저장하는 형식은 크게 비트맵/벡터로 나눌 수 있다.
1. 비트맵방식 (Bitmap) : 그림을 아주 작은 화소(픽셀)로 분해하고 각 화소의 색상과 위치를 기록해 저장하는 방식.
비트의 지도라는 뜻으로 픽셀을 하나씩 채워가면서 전체를 표현한다.
ex) JPG, PNG, GIF, WEBP
2. 벡터방식 : 그림을 구성하고 있는 점이나 직선, 곡선 등의 위치와 기울기 등을 산술적인 데이터로 기록해 저장하는 방식.
파일 하나로 여러 화면 밀도에 대응할 수 있어 apk 크기를 줄일 수 있다.
복잡한 이미지는 표현할 수 없어서 간단한 도형이나 로고 등에 주로 사용한다.
API 20 이상에서부터 Vector Asset Studio로 SVG, PSD를 프로젝트에 벡터 이미지로서 적용할 수 있다.
ex) PDF, AI, SVG, PSD
Android에 사용 가능한 다양한 이미지 확장자
SVG: Scalable Vector Graphics
2차원 그래픽을 벡터 방식으로 표현하는 XML 기반의 마크업 언어이다.
모든 사이즈에서 깔끔하게 렌더링되며, 웹 표준과 잘 동작하도록 설계되었다.
그래픽 편집기 없이 텍스트 수정으로 이미지를 처리할 수 있다는 장점이 있다.
Vector Asset Studio를 통해 벡터 드로어블 리소스로 프로젝트에 가져올 수 있다.
PSD : Adobe Photoshop Document
Vector Asset Studio를 통해 벡터 드로어블 리소스로 프로젝트에 가져올 수 있다.
JSON 기반의 애니메이션 파일 확장자.
gif에 비해 가벼우며, vector 방식으로 이미지를 저장하기 때문에 scale이 가능하다.
웹, 앱에 사용하기 쉽고 사용자 동작과 상호작용하게 할 수 있다.
PNG : Portable Network Graphic
투명배경이 지원된다. 용량대비 화질이 좋다.
이미지에 관련된 Java class
눈으로 볼 수 있는 것을 추상화하는데에 사용되며, 다양한 형식의 Visual resource를 동일한 API로 사용할 수 있게 해주는 장점이 있다.
Bitmap(PNG, JPEG), Nine Patch(PNG 늘리는 방식 정의), Vector 형식의 객체로 바꿀 수 있다.
Bitmap
The simplest Drawable, a PNG or JPEG image.
VectorDrawable
XML vector graphic을 기반으로 Drawble을 만든다.
참고자료
공식문서 : Add multi-density vector graphics
'프레임워크 > Android' 카테고리의 다른 글
compiler version error 원인 (0) | 2023.02.18 |
---|---|
CoordinatorLayout에서 겹쳐진 뷰의 터치 이벤트를 처리하는 방식 (0) | 2022.12.01 |
Databinding Type mismatch 문제 : layout format 확인하기 (0) | 2022.11.30 |
Jetpack Navigation Safeargs 사용법 (0) | 2022.11.29 |
RecyclerView 요약정리 (0) | 2022.11.03 |