5

Attualmente sto lavorando su un'app per Android. Ho appena iniziato e sono riuscito a implementare la mia schermata iniziale. Tuttavia, non mi piace la transizione tra quella e l'attività principale. Voglio che la schermata iniziale si dissolva e che la schermata principale si dissolva. Sembra che si fondano insieme poiché ho la stessa immagine di sfondo per entrambi. Ha fatto qualche ricerca ma non è stato in grado di trovare le risposte giuste. Di seguito, ho pubblicato il mio codice.Android Studio dissolvenza 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; 
} 
} 

classe MainActivity

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); 
} 
} 

Sentitevi liberi di eliminare tutte le classi o file non necessari per questo compito. Grazie

risposta

14

È possibile utilizzare due file .xml per dissolvere in una nuova attività e sfumare l'attività corrente.

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" /> 

utilizzarlo nel codice così: (All'interno della vostra attività)

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

Il codice qui sopra sfumare la Attività attualmente attiva e dissolvenza nell'attività appena avviata.

+0

in quale cartella creerei i 2 file .xml? @ Y.S – KimCheeFatChoyProgrammer

+0

è necessario creare una cartella con nome come "anim" nella cartella delle risorse e creare tali file .xml in quella cartella "anim" –

+0

bango. giusto grazie grazie @ Y.S funziona come un fascino. Un tal sito per occhi irritati. – KimCheeFatChoyProgrammer