5

Şu anda bir android uygulaması üzerinde çalışıyorum. Yeni başladım ve benim açılış ekranımı uygulayabildim. Ancak, bu ve ana aktivite arasındaki geçişi sevmiyorum. Sıçrama ekranının sönmesini ve ana ekranın soluklaşmasını istiyorum. İkisinin de aynı arka plan görüntüsüne sahip olduğumdan, birbirine karışmış gibi görünüyor. Bazı araştırmalar yaptım ama doğru cevapları bulamadım. Aşağıda, kodumu gönderdim.Android Studio ana ekrana sıçrayan fışkırtma

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 sınıf

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

herhangi sınıfları veya bu görev için gerekli değildir dosyaları silmek için çekinmeyin. Teşekkürler

cevap

14

Yeni bir Etkinlikte kaybolmak ve mevcut Etkinliği silmek için iki .xml dosyasını kullanabilirsiniz.

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

böyle kodda kullanın: (sizin Faaliyet İçinde)

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

Yukarıdaki kod kaybolup gider Aktif olarak faaliyete geçin ve yeni başlatılan Etkinlikte yavaşlayın.

+0

2 .xml dosyalarını hangi klasörde oluşturabilirim? @ YS – KimCheeFatChoyProgrammer

+0

Kaynak klasörünüzde "anim" adıyla bir klasör oluşturmalı ve bu "anim" klasöründe –

+0

bangoda bu 2 .xml dosyasını oluşturmalısınız. sağda teşekkür ederim @ Y.S bir çekicilik gibi çalışır. Ağrılı gözler için böyle bir site. – KimCheeFatChoyProgrammer