Ich möchte, dass meine Anwendung professioneller aussieht, also habe ich beschlossen, einen Splash-Screen hinzuzufügen.
Wie sollte ich bei der Umsetzung vorgehen?
Ich möchte, dass meine Anwendung professioneller aussieht, also habe ich beschlossen, einen Splash-Screen hinzuzufügen.
Wie sollte ich bei der Umsetzung vorgehen?
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);
}
}
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?
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
GitHub
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...
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 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.