2016-03-24 6 views
0

Я пытаюсь автоматически отобразить другую активность, когда прошло 3 секунды, но на втором экране появляется странное мигание. Это то, что я получаю: https://i.gyazo.com/bfd2c003b2bdd3a639a6db5f658da062.gifЭкран мигает при попытке перехода из одной активности в другую

И мой код:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ImageView image = (ImageView) findViewById(R.id.imageView1); 
    TextView text = (TextView) findViewById(R.id.text2); 
    Typeface cfont = Typeface.createFromAsset(getAssets(), "fonts/KeeponTruckin.ttf"); 
    text.setTypeface(cfont); 
    final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      // TODO: Your application init goes here. 
      Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
      MainActivity.this.startActivity(intent); 
      MainActivity.this.finish(); 
     } 
    }, 3000); 
} 

Спасибо за вашу помощь.

ответ

0

Я не знаю, почему, так это симулятор maby simroid. Вы можете установить переход для активности plash_screen (например: fade out) для лучшего UX. Вставьте Folow код в ваш код

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

fade_in.xml (толчок к anim папке)

<?xml version="1.0" encoding="utf-8"?> 
       <?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" /> 
0

Изменить свое намерение к этому, если вы этого не сделаете требуется переход на анимацию:

Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
MainActivity.this.startActivity(intent); 
MainActivity.this.finish(); 

Если вы хотите, замирание в/из эффекта, вызовите следующее перед началом деятельности:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 
Смежные вопросы