0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AndroidStudio 스플래시 스크린 만들기

Last updated at Posted at 2019-07-01

AndroidStudio 3.4.1

참고 사이트 -> Splash Screens the Right Way
github 샘플 소스 -> Splash

샘플소스에서 주요 파일 경로
SplashActivity.java
Splash/app/src/main/java/com/bignerdranch/android/splash/

background_splash.xml
Splash/app/src/main/res/drawable/

colors.xml, styles.xml
Splash/app/src/main/res/values/

안드로이드 해상도
MDPI: Portrait: 320x480px. Landscape: 480x320px.
HDPI: Portrait: 480x800px. Landscape: 800x480px.
XHDPI: Portrait: 720px1280px. Landscape: 1280x720px.
XXHDPI: Portrait: 960px1600px. Landscape: 1600x960px.
XXXHDPI: Portrait: 1280px1920px. Landscape: 1920x1280px.

###ios에서는 launch image
xcode에서는 어렵지 않게 등록했지만 안드로이드에서는 약간의? 작업이 필요했습니다.

위의 가이드에서는 앱 시작 시 로딩이 필요한 시간만큼 런치 이미지를 띄우는 방식이므로 이상적인 방식이라고 생각해 적용하기로 했습니다.
(cocos2dx에서의 구현도 가능하지만 강제 딜레이를 주는 방식 이외의 방법을 찾아내지 못했다..)

###필요한 파일들
(Android Studio 3.4.1에는 drawable폴더 만들기가 없습니다. 그래서 그냥 만들어줌.)
background_splash.xml - drawble 폴더에 넣어준다.
colors.xml, styles.xml - values 폴더에 넣어준다.
drawablepath.PNG

SplashActivity.java 소스를 보니 메인 Activity를 호출하는 역할인듯..
AppActivity와 같은 경로에 넣어줍니다.
activity.PNG

###에러
위에서 추가한 values/style.xml에서 'AppCompat'관련 error가 나왔다.
해결 방법 : build.gradle(Module:gonfashion_android)에 아래 도구를 추가해주고 synk.

build.gradle(Module-gonfashion_android)
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':libcocos2dx')

    implementation 'com.android.support:appcompat-v7:26.1.0' // 추가.
    implementation 'com.google.firebase:firebase-core:16.0.9'
    implementation 'com.google.firebase:firebase-ads:17.2.1'
}

###AndroidManjfest.xml 편집
이 부분이 중요합니다. 메인 AppActivity를 SplashActivity로 대체 한 후, 소스 아래에 메인 AppActivity를 별도로 추가해야 됩니다.
(단지 AppActivity를 SplashActivity로 대체하기만 하면 동작하지 않습니다.)

AndroidManjfest.xml
<!-- name : SplashActivity 수정, theme : SplashTheme 수정 -->
        <activity
            android:name="org.cocos2dx.cpp.SplashActivity" 
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/SplashTheme"
            android:launchMode="singleTask"
            android:taskAffinity="" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- launchMode 등등은 삭제하지 않을 경우 앱아이콘이 2개가 되거나 런치 이미지가 동작하지 않는다. -->
        <activity
            android:name="org.cocos2dx.cpp.AppActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        </activity>

###launch image를 logo로 대체.
기기별 해상도에 맞게 런치 이미지를 만들고 테스트를 해보니 화면에 꽉 차지 않는 문제가 발생했습니다.
drawable/background_splash.xml의 옵션값을 바꿔도 해결이 되지 않았기 때문에, 아예 로고만 짤라서 넣기로 했습니다. - values/colors.xml에서 배경색을 지정할 수 있기 때문에 효과적입니다.

  • 수정해본 옵션값에 대해..
  • 아래 android:gravity를 **"center|fill"**로 바꾸면 화면에 꽉 차긴 하지만 이미지가 왜곡됩니다.
background_splash.xml
<item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/logo"/>
</item>

###launch logo 적용
각 폴더별로 해상도에 맞게 로고 이미지를 넣어줍니다.
이미지 이름은 모두 동일해야 됩니다.
logopath2.PNG
logopath.PNG

로고 이미지를 등록합니다.
android:src"@mipmap/이미지 이름"

background_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@color/gray"/>

    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/logo"/>
    </item>

</layer-list>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?