619 Stimmen

Wie erstelle ich einen Begrüßungsbildschirm?

Ich möchte, dass meine Anwendung professioneller aussieht, also habe ich beschlossen, einen Splash-Screen hinzuzufügen.

Wie sollte ich bei der Umsetzung vorgehen?

2voto

kablu Punkte 1

Beispiel für einen Splash-Screen :

public class MainActivity extends Activity {
    private ImageView splashImageView;
    boolean splashloading = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        splashImageView = new ImageView(this);
        splashImageView.setScaleType(ScaleType.FIT_XY);
        splashImageView.setImageResource(R.drawable.ic_launcher);
        setContentView(splashImageView);
        splashloading = true;
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            public void run() {
                splashloading = false;
                setContentView(R.layout.activity_main);
            }

        }, 3000);

    }

}

2voto

Sankar Ganesh PMP Punkte 11831

Erstellen Sie eine Aktivität, lassen Sie uns eine Aktivität mit dem Namen 'A' erstellen, dann erstellen Sie eine XML-Datei mit dem Namen myscreen.xml, in der Sie das Bild des Startbildschirms als Hintergrund festlegen, und verwenden Sie dann einen Countdown-Timer, um von einer Aktivität zur anderen zu navigieren. Um zu erfahren, wie man den Count Down Timer verwendet, lesen Sie meine Antwort in dieser Frage TimerTask in Android?

1voto

Lunox Punkte 188

Hier ist eine einfache!

~Lunox

MainActivity.java

package com.example.splashscreen;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

splashscreen.java

package com.example.splashscreen;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class splashscreen extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splashscreen);

        //Splash Screen duration
        int secondsDelayed = 1;
        new Handler().postDelayed(new Runnable() {
            public void run() {
                startActivity(new Intent(splashscreen.this, MainActivity.class));
                finish();
            }
        }, secondsDelayed * 3000);
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

splashscreen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splashlogo"

    />

splashlogo.png

splashlogo.png

GitHub

SplashScreen

1voto

Ankit Singh Punkte 344

Sie können dies in Ihrer onCreate-Methode hinzufügen

new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    // going to next activity
                    Intent i=new Intent(SplashScreenActivity.this,MainActivity.class);
                    startActivity(i);
                    finish();
                }
            },time);

Und initialisieren Sie Ihren Zeitwert in Millisekunden, wie Sie wollen...

private  static int time=5000;

für weitere Details laden Sie den vollständigen Code von diesem Link herunter...

https://github.com/Mr-Perfectt/Splash-Screen

1voto

Akanshi Srivastava Punkte 1060

Eine Möglichkeit besteht darin, eine FullScreenActivity/EmptyActivity (z. B. SplashScreenActivity) zu erstellen und sie als erste Aktivität festzulegen, die beim Öffnen Ihrer Anwendung angezeigt wird. Fügen Sie Folgendes zu Ihrer Activity in der AndroidManifest.xml

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

Sie können dann einen Handler einstellen, der diese Aktivität nach ein paar Sekunden beendet.

new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent i= new Intent(SplashScreenActivity.this,MainActivity.class);
                startActivity(i); //start new activity 
                finish();
            }
        }, 3000); //time in milliseconds

Zweitens können Sie, wenn Sie keine separate Aktivität erstellen möchten, ein Layout über Ihre MainActivity und setzen Sie die Sichtbarkeit des Layouts auf GONE oder das Hauptlayout nach ein paar Millisekunden über das bestehende Splashscreen-Layout aufblasen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X