Android Studio를 사용하여 애니메이션 된 스플래시 화면을 Android 앱에 추가하는 방법

 

 

이 튜토리얼에서는 Android Studio를 사용하여 Animated Splash Screen을 Android 애플리케이션에 추가하는 방법을 보여줍니다. 이 스플래시 화면을 기존 Android Studio 프로젝트 또는 New Android Studio 프로젝트에 추가 할 수 있습니다.

 

구현에 필요한 코드는 여기에서 복사 할 수 있습니다. 

Splashscreen.java

package com.jwlee.myapplication;

import android.app.Activity;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;

import java.util.Random;

public class Splashscreen extends Activity {
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        Window window = getWindow();
        window.setFormat(PixelFormat.RGBA_8888);
    }
    /** Called when the activity is first created. */
    Thread splashTread;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        StartAnimations();
    }
    private void StartAnimations() {
        Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
        anim.reset();
        LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay);
        l.clearAnimation();
        l.startAnimation(anim);

        anim = AnimationUtils.loadAnimation(this, R.anim.translate);
        anim.reset();
        ImageView iv = (ImageView) findViewById(R.id.splash);
        iv.clearAnimation();
        iv.startAnimation(anim);

        splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    int waited = 0;
                    // Splash screen pause time
                    while (waited < 3500) {
                        sleep(100);
                        waited += 100;
                    }
                    //Intent intent = new Intent(Splashscreen.this, MainActivity.class);
                    Intent intent = new Intent(Splashscreen.this, MainActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                    startActivity(intent);
                    Splashscreen.this.finish();
                } catch (InterruptedException e) {
                    // do nothing
                } finally {
                    Splashscreen.this.finish();
                }

            }
        };
        splashTread.start();

    }

}

layout/activity_splashscreen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#242729"
    android:layout_gravity="center"
     android:id="@+id/lin_lay"
    android:gravity="center"
    android:orientation="vertical" >
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/splash"
        android:background="@drawable/splash_img" />
 
</LinearLayout>

 

anim/alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="3000" />

anim/translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android">
 
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0%"
    android:toXDelta="0%"
    android:fromYDelta="200%"
    android:toYDelta="0%"
    android:duration="2000"
    android:zAdjustment="top" />
 
</set>

이름이 splash_img 인 이미지를 png 형식으로 복사하십시오.

이렇게하면 Animated Splashscreen을 Android 앱에 추가 할 수 있습니다.

 

 

AndroidManifest.xml  에서 splashscreen를 앞에 나오게 한다. 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jwlee.myapplication">

    <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/AppTheme">
        <activity android:name=".Splashscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>

    </application>

</manifest>

1.네이버 클라우드 플랫폼에 접속해서 회원가입, 결제정보입력. 어느정도 비지니스규모가 되면 돈내야함. 하루에 몇십만뷰는 되야하니 걱정할필요없음. 정확한요금 관련 건은 페이지에 적혀있음. 

2

3

4

5

6

7 패키지 이름 복사

8 안드로이드 패키지 이름 똑같이 입력. 

9 어플리케이션 이름 

 

10 인증정보 누르면 클라이언트 아이드 복사

 

또는 이렇게 하면된다. (클라이언트 아이디 등록방법)

 

1. 구글 맵 플랩폼에 들어가서 회원가입 로그인 한다. (결제정보입력하나 결제되는건 아니니 안심하자)

 

 

2. 카드입력한다. 왠지 찝찝하지만 실제로 결제되는건 아니고 ... 자세히 읽어보세요 

 

3.

4. 

 

5. 새프로젝트를 만든다. 

 

6.

7.

 

 

8. Maps SDK for Android를 선택한다. 

 

9. 관리

 

10. 사용자 인증정보에서 api 키 값을 복사 

 

 

11. 구글 맵 플랩폼에서 api키를 받으세요 .

 

12. 안드로이드 실행 google maps activity 선택

 

13 구를에서 받은 api키를 다음 같은곳에 삽입

 

 

 

14

 

15

 

16 플레이스토어 표시된걸로 실행해야한다. 

 

17. 실행한다. 

 

18. 서울로 변경하기 

 

 

 

1. 그래들 스크립트 Gradle Scripts 

build.gradle (Project)
allprojects {
    repositories {
        google()
        jcenter()
        maven {url "https://jitpack.io"}
        
    }
}

 

build.gradle(app)

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.google.android.gms:play-services-ads:15.0.1'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}

 

2. XML 코드 

<com.github.mikephil.charting.charts.PieChart
android:id="@+id/picChart"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

 

3. MainActivity.java 코드 

package com.jwlee.piechartexample;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

PieChart pieChart;
int[] colorArray = new int[] {Color.LTGRAY, Color.BLUE, Color.RED};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

pieChart = findViewById(R.id.picChart);

PieDataSet pieDataSet = new PieDataSet(data1(),"좋음싫음 설문조사");
pieDataSet.setColors(colorArray);
PieData pieData = new PieData(pieDataSet);
pieChart.setDrawEntryLabels(true);
pieChart.setUsePercentValues(true);
pieData.setValueTextSize(30);
pieChart.setCenterText("설문조사");
pieChart.setCenterTextSize(25);
pieChart.setHoleRadius(30);
pieChart.setData(pieData);
pieChart.invalidate()
;


}

private ArrayList<PieEntry> data1() {
ArrayList<PieEntry> datavalue = new ArrayList<>();

datavalue.add(new PieEntry(30,"무응답"));
datavalue.add(new PieEntry(50,"좋음"));
datavalue.add(new PieEntry(20,"싫음"));


return datavalue;
}

}

+ Recent posts