5

Ich arbeite derzeit an einer Android App. Ich habe gerade angefangen und konnte meinen Begrüßungsbildschirm implementieren. Allerdings mag ich den Übergang zwischen dieser und der Haupttätigkeit nicht. Ich möchte, dass der Begrüßungsbildschirm ausgeblendet und der Hauptbildschirm eingeblendet wird. Es sieht so aus, als ob sie ineinander übergehen, da ich für beide das gleiche Hintergrundbild habe. Hat einige Recherchen gemacht, aber konnte nicht die richtigen Antworten finden. Unten habe ich meinen Code veröffentlicht.Android Studio Fading Splash in Main

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.MotionEvent; 

public class Splash_screen extends Activity { 

private Thread mSplashThread; 

@Override 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_layout); 
    final Splash_screen sPlashScreen = this; 

    mSplashThread = new Thread(){ 
     @Override 
     public void run(){ 
      try { 
       synchronized(this){ 
        wait(3000); 
       } 
      } 
      catch(InterruptedException ex){ 
      } 
      finish(); 

      Intent intent = new Intent(); 
      intent.setClass(sPlashScreen, MainActivity.class); 
      startActivity(intent); 
     } 
    }; 

    mSplashThread.start(); 
} 

@Override 
public boolean onTouchEvent(MotionEvent evt) 
{ 
    if(evt.getAction() == MotionEvent.ACTION_DOWN) 
    { 
     synchronized(mSplashThread){ 
      mSplashThread.notifyAll(); 
     } 
    } 
    return true; 
} 
} 

MainActivity Klasse

import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.app.Activity; 

public class MainActivity extends Activity { 

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

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

Fühlen Sie sich frei alle Klassen oder Dateien nicht für diese Aufgabe benötigt zu löschen. Danke

Antwort

14

Sie können zwei .xml-Dateien verwenden, um eine neue Aktivität einzublenden und die aktuelle Aktivität auszublenden.

fade_in.xml

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

fade_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:fromAlpha="1.0" android:toAlpha="0.0" 
     android:fillAfter="true" 
     android:duration="500" /> 

es so, dass im Code verwenden: (In Ihrer Aktivität)

Intent intent = new Intent(); 
     intent.setClass(sPlashScreen, MainActivity.class); 
     startActivity(intent); 
overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 

Der obige Code wird ausgeblendet die aktuell aktiv Aktivität und Einblenden der neu gestarteten Aktivität.

+0

In welchem ​​Ordner würde ich die 2 .xml-Dateien erstellen? @ Y.S – KimCheeFatChoyProgrammer

+0

Sie müssen Ordner mit Namen als "anim" in Ihrem Ressourcenordner erstellen und diese 2 .xml-Datei in diesem "anim" -Ordner erstellen –

+0

bango. direkt auf danke @ Y.S funktioniert wie ein Charme. Solch eine Seite für wunde Augen. – KimCheeFatChoyProgrammer