5

Obecnie pracuję nad aplikacją dla systemu Android. Właśnie zacząłem i udało mi się zaimplementować ekran powitalny. Jednak nie podoba mi się przejście między tym a głównym działaniem. Chcę, aby ekran powitalny wygasł i główne znikają. Wygląda na to, że łączą się ze sobą, ponieważ mam taki sam obraz tła dla obu. Czy niektóre badania, ale nie były w stanie znaleźć właściwych odpowiedzi. Poniżej zamieszczam mój kod.Android Studio zanikające w 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; 
} 
} 

klasa główną działalność

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

Zapraszam do usunięcia wszelkich klas lub pliki nie potrzebne do tego zadania. Dzięki

Odpowiedz

14

Możesz użyć dwóch plików .xml do zanikania w nowej aktywności i zanikania bieżącej aktywności.

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

Użyj go w kodzie tak: (Wewnątrz swojej działalności)

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

Powyższy kod będzie wygasić aktualnie aktywny Aktywność i zanikanie w nowo rozpoczętej Działalności.

+0

w którym folderze będę tworzył pliki .xml? @ Y.S – KimCheeFatChoyProgrammer

+0

należy utworzyć folder o nazwie "anim" w folderze zasobów i utworzyć plik 2.xml w tym folderze "anim" –

+0

bango. po prostu dziękuję @ Y.S działa jak urok. Takie miejsce dla obolałych oczu. – KimCheeFatChoyProgrammer