Android

안드로이드 프로젝트의 xml에서 다크모드 여부에 따라 다른 이미지를 보여줄 수 있나요?

네모메모 2023. 3. 26. 13:56
반응형
안드로이드 프로젝트의 xml에서 다크모드 여부에 따라 다른 이미지를 보여줄 수 있나요?
 
 

네, 안드로이드에서는 다크모드 여부에 따라 다른 이미지를 보여줄 수 있습니다. 이를 위해서는 android:src 대신 app:srcCompat을 사용하고, android:src에서 사용하는 이미지 리소스 대신 drawable-night 폴더에 다크모드 이미지 리소스를 추가해야 합니다.

아래는 예시 코드입니다.

xmlCopy code
<ImageView android:id="@+id/my_image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/my_image" />

위 코드에서는 android:src 대신 app:srcCompat 속성을 사용하여 이미지를 설정하고 있습니다. 이는 appcompat-v7 라이브러리에서 제공하는 벡터 이미지 지원을 사용하기 위해 사용하는 것입니다.

또한, drawable-night 폴더에 다크모드 이미지 리소스를 추가할 수 있습니다. 예를 들어, my_image.png 파일이 있는 경우 drawable 폴더에 기본 이미지를, drawable-night 폴더에 다크모드 이미지를 my_image.png으로 추가하면 됩니다. 안드로이드 시스템은 다크모드로 전환될 때 자동으로 drawable 대신 drawable-night 폴더에 있는 이미지를 사용합니다.

xmlCopy code
res/ ├── drawable/ │ └── my_image.png └── drawable-night/ └── my_image.png

이제, 시스템이 다크모드로 설정되어 있을 때 my_image.png 대신 drawable-night/my_image.png 이미지가 자동으로 로드됩니다.

 
반응형