안드로이드 - 앱실행 시 로딩화면 적용방법 (검정색 배경 없애기)

개발/안드로이드 2017. 11. 8. 08:02
반응형

안드로이드 앱 실행 시 흰색/검정색 화면이 뜨다가 앱이 실행되는 현상을 수정해 보도록 하겠습니다.

구글링 해보면 splash 화면을 적용하면된다는 내용도 있는데요. 

splash 도 앱 실행시 흰색/검정색 화면 뜨고 난 후 splash 되는 것으로 의미가 없습니다. 


적용하는 방법은 간단합니다. 

style.xml 파일에서 "android:windowContentOverlay”, "android:windowIsTranslucent” 아이템을 추가하기만 하면 됩니다.

아래 코드 4,5 번째 줄을 참고 하시면 됩니다.


1
2
3
4
5
6
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
</style>
cs


style 코드만 봐서 어떻게 적용하는지 모르겠다 하시는 분은 [안드로이드 타이틀바 없애기] 를 보시면  style를 적용하는 방법이 자세히 설명되어 있으니 참고 하시면 됩니다.

위에서 설명한 방법은 로딩화면을 투명하게 만들어 바로 뜨는것 처럼 느끼게 해주는 방법입니다.

그러나 MainActivity의 onCreate 등에 코드가 많아지면 앱실행시 약간 딜레이 후 화면이 뜨는 현상을 목격하게 될 것입니다. 왜냐하면 로딩화면이 투명하게 되었으니 그런 현상이 나오게 되는데요. 

이럴때 사용하기 좋은 유용한 방법 몇가지를 알려드릴께요!


1) 로딩화면 색상 변경


로딩화면을 없애지 않고 색상만 바꾸려면  "android:windowBackground" 아이템을 추가해 줍니다.

그리고 색상을 지정해 줍니다. 그럼 로딩화면 색상을 제어 할 수 있습니다.

1
2
3
4
5
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@color/white</item>
</style>
cs


2) 로딩화면 이미지 입히기


로딩화면에 이미지를 입혀 splash 효과를 얻을 수 있도록 해봅시다. 뭐 말은 이미지 입힌다고 하지만 위 코드랑 별차이가 없습니다. @color 대신 @drawble 로 변경해주기만 하면 됩니다.

1
2
3
4
5
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/bg</item>
</style>
cs





반응형
admin