티스토리 뷰
drawable과 drawable-v21 폴더만 생성되는 이유
언제부턴가 Android 프로젝트를 생성하면 res 폴더에 drawable과 drawable-v21 폴더만 생성됩니다. 과거에는 픽셀 밀도에 따라 drawable-mdpi, drawable-xhdpi ... 등의 폴더가 생성되었는데, 2015년 9월 Android Studio 1.4버전부터 Vector Asset Studio 도구가 추가되면서 drawable과 drawable-v21만 생성되도록 변경된 것입니다.
drawable과 drawable-v21 폴더만 생성되는 이유를 간단히 설명하자면, Android Studio 1.4 부터 벡터 이미지를 중점적으로 사용하도록 변경되었지만 벡터 이미지는 안드로이드 v21 (5.0 롤리팝)부터 지원합니다. 이러한 문제 해결을 위해 drawable-v21 폴더에는 벡터 이미지 파일들을 추가하고, 그 이전 버전의 안드로이드(4.4 킷캣, API v20)를 위해서 drawable 폴더에 비트맵 이미지를 추가하도록 변경된 것이죠.
Vector Asset Studio란?
Vector Asset Studio는 벡터 이미지를 drawable에 추가 할 수 있도록 지원하는 도구입니다. 과거에는 픽셀 밀도별로 비트맵 이미지를 생성해야 했기 때문에 유지보수 하기도 힘들었고, 이미지가 많아 질수록 패키지 크기도 증가하는 문제가 있었습니다. 이를 개선하기 위해 벡터로 이미지를 추가하고 관리할 수 있도록 Vector Asset Studio 도구가 추가된 것이죠.
Vector Asset Studio의 동작방식
Vector Asset Studio는 SVG 또는 Adobe PSD 파일을 입력받아 안드로이드 프로젝트의 drawable과 drawable-v21 폴더에 적절한 이미지를 추가합니다.
drawable 폴더에 추가되는 이미지는 PNG파일로서 안드로이드 4.4 버전(v20) 이하 버전에서만 사용됩니다. 안드로이드 5.0 버전(v21) 부터 Vector를 지원하기 시작하기 때문에 Vector를 지원하지 않는 하위 기기를 위해 비트맵 이미지를 생성하여 drawable 폴더에 추가하는 것입니다. 이러한 작업은 프로젝트가 빌드될 때 Vector Asset Studio가 자동으로 진행합니다. (물론 안드로이드 4.4 이하버전에서도 Vector Drawable을 사용할 수 있는데 프로젝트에 Android Support Library 23.2 이상을 추가하는 것입니다.)
drawable-v21에는 Vector Drawable 이미지 파일이 추가됩니다. 안드로이드 5.0(v21)부터는 벡터 이미지 포멧이 지원되기 때문입니다.
Vector Asset Studio 사용하기
자세한 방법은 https://developer.android.com/studio/write/vector-asset-studio#running에서 설명하고 있으니 참고바랍니다.
'Mobile > Android' 카테고리의 다른 글
[Android] Style 정의하기 (0) | 2022.07.02 |
---|---|
[Android] 폰트 적용하기 (0) | 2022.07.02 |
[Android] drawable과 mipmap (1) | 2018.05.03 |
[Xamarin.Android] Push Notification 구현 (0) | 2018.04.23 |
[Android] 반투명 상태바 사용 (0) | 2017.11.17 |
[Android] View와 Layout (0) | 2017.11.14 |
[Android] Lollipop 5.0 (API 21)에서의 문제 (0) | 2017.11.14 |
- StringComparison
- Xamarin.Forms
- Vue
- React
- npm
- Xamarin.Forms eBook
- MS SQL
- Android
- ios
- Xamarin
- Xamarin.Forms 요약
- TypeScript
- WPF
- .NET Standard
- flutter
- c#
- material-ui
- Xamarin.iOS
- ASP.NET Core
- VisualStudio
- Total
- Today
- Yesterday