구글이고 네이버고 Android splash 윈도우 만드른 예제가 꽤 있는데,
전부 가짜네요.
그냥 Splash 윈도우를 모양만 흉내 낸 것이네요.
정말 부하가 걸리면 아무소용이 없더라구요.
특히 극악의 모비낸드를 쓴 갤럭시S 가 극명하게 가짜인것을 가려 줍니다.
아무튼 제대로된 것이 없네요 ㅡ.ㅡ
시간날때 방법 정리해서 올려야 할텐데,
요즘 너무 바쁘네요.
수고하세요!
어떤 의미에서 가짜라고 하는지 모르겠군요?
스플래쉬 화면이란게 원래 초기화시 시간이 좀 걸릴때 대기화면,
아니면 프로그램의 대표이미지등을 표시하는 정도 아닌가요?
제가 모르는 특별한 용도가 있는지 궁금하군요?
예 초기화에 걸리는 시간에 화면 비는 것(검은화면이나 빈화면) 을 대비해서 출력하는 것인데요.
예제들 찾아보면 가짜로 시간만 돌리면 화면출력하는 것이 전부 입니다.
실제로 컴퓨터 부하로 시간이 걸리는 경우는 전혀 처리가안되요 ^^
특별한 용도가 없는데, 그 단순한용도도 처리를 못하는것을 예제랍시고 올리고,
이것을 보고 서로들 인용하고 링크 걸고 해서 대부분 가짜라는 것이랍니다 ^^
갤럭시S 같은 경우는 뭐 이 폰의 모비낸드 때문에 I/O 부하가 워낙느려서 눈에 띄게 보이는 것이지만,
다른 폰들도 정도는 덜하더라도 같은 경우라면 동일한 문제가 발생할 수 있다는 것이랍니다.
아.. 스플레쉬쪽에서 실제 i/O 처리가 될줄 알았는데.. 알고보니.. 그냥 화면만 뿌리고 다음으로 넘어가더라.. 라는거였군요 ^^
거.. 왠지 찔리네.. 저도 글케 만든거 있었는데 ㅋㅋ
핸들러도 안쓰는 아주 간단한 방법 공유해드립니다.
일단 theme를 만듭니다.
<style name="Theme" parent="android:Theme.Light.NoTitleBar">
<item name="android:windowBackground">@drawable/bg_loading_splash</item>
</style>
이걸 splash띄우고 싶은 activity의 theme로 지정합니다.
<activity
android:name=".HomeActivity"
android:label="@string/app_name"
android:theme="@style/Theme">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
끝.
onCreate, onResume이 되기전까지 bg_loading_splash가 보여지게 됩니다.
이 정도면 진짜라고 할수 있을까요? @.@
저는 예제를 보고 만들어본적은 없지만, 개인적으로 만들어보니
핸들러 + 스레드 조합을 사용해도 IO가 100%를 치는 상황에서는
무조건 버벅거리더군요, 연산이 무거운 경우에는 관계가 없는데
유독 IO의 점유율이 높아지면... 방법이 없었습니다.