• 안드로이드 스튜디오 인트로 화면 생성, 원하는 로고 이미지 넣기

    2021. 1. 2.

    by. 하루플스토리

    반응형

    안녕하세요, 하루플스토리 입니다.

     

    여러 앱들을 접속할 때 인트로 로고 화면이 뜨는 것을 많이 보셨을겁니다.

    네이버, 유튜브, 카카오톡 접속 시 인트로 화면

    이러한 로고를 제작하고 인트로화면을 생성하는 방법을 알려드리겠습니다.

     


    1. 로고 제작

    무료 로고제작 미리캔버스

    무료로 로고나 ppt 등 템플릿 제작할 수 있는 사이트 입니다. 저작권 걱정 전혀 없으니 여기서 편하게 제작하시거나 포토샵으로 제작하셔도 좋습니다.

     

    사이즈는 가로1080 * 세로1920px 이 무난합니다.

     

     

    제작한 이미지는 res - drawable 폴더에 드래그 해서 넣어줍시다.

     

    2. introActivity.xml 레이아웃 생성

    res - layout (오른쪽 마우스) - new - Layout Resource File

     

    레이아웃명은 알아서 지어줍시다. 저는 intro_activity 라고 했습니다.

     

     

    intro_activity.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">
    
        <ImageView
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:src="@drawable/logo"
            android:layout_gravity="center"
            />
    
    </LinearLayout>

    아마 맨처음엔 ConstraintLayout 으로 설정되어 있을건데 LinearLayout이 편해서 바꾸어주었습니다.

    이미지뷰 넣고 아까 만든 logo 이미지 파일명을 android:src="@drawable/logo" 로 적어줍니다.

     

     

    3. IntroActivity.Java 생성

    java - New - Java Class 에서 IntroActivity 를 적어 생성해줍니다.

    이 자바 파일은 당연히 아까 만든 intro_activity.xml 과 연결시킬겁니다.

     

     

    IntroActivity.java

    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Handler;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    public class IntroActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.intro_activity); //xml , java 소스 연결
            Handler handler = new Handler();
            handler.postDelayed(new Runnable(){
                @Override
                public void run() {
                    Intent intent = new Intent (getApplicationContext(), MainActivity.class);
                    startActivity(intent); //인트로 실행 후 바로 MainActivity로 넘어감.
                    finish();
                }
            },1000); //1초 후 인트로 실행
        }
    
        @Override
        protected void onPause(){
            super.onPause();
            finish();
        }

    여기까지 하면 실행되지 않습니다.

     

    매니페스트에서 현재는 맨 처음 실행되는 것이 MainActivity로 설정되어있기 때문에 인트로가 실행되지 않습니다.

    매니페스트를 수정해줍시다.

     

    기존 MainActivitiy가 있던 자리를 IntroActivity로 교체하고 MainActivity는 아래에서 자바파일이 있다는 것을 알려주도록 합니다. 이 소스코드가 없으면 앱이 팅기게 됩니다.

     

     

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.justice.maple_name_maker">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.AppCompat.NoActionBar">
            <activity android:name=".IntroActivity">
    
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".Developer_info"/>
            <activity android:name=".Name_rule"/>
            <activity android:name=".MainActivity"/>
        </application>
    
    </manifest>

     

    실행결과

    인트로화면이 1000ms (1초)동안 출력되고 Main화면이 출력되게 됩니다.

     

    막히는 점이나 모르는 점은 댓글에 남겨주세요!

    반응형

    댓글