Member 9983063 Ответов: 1

Как открыть фрагментацию activity on after splash screen activity


Здравствуйте, ребята, я хочу знать, как я могу открыть свою активность фрагмента после активности заставки, и в моей заставке я использую анимацию в моей заставке, пожалуйста, помогите мне, как я могу ее открыть.
заранее спасибо.

Что я уже пробовал:

package com.complainprotectioncell;

import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class SplashScreen extends AppCompatActivity {
    public MediaPlayer mp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       try {
//           getSupportActionBar().hide();
//           requestWindowFeature(Window.FEATURE_NO_TITLE);
//           getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
//                   WindowManager.LayoutParams.FLAG_FULLSCREEN);
           setContentView(R.layout.front_splash_screen);
           mp = MediaPlayer.create(this, R.raw.bgr_be_happy);
           mp.start();

           startAnimation();
       }catch(Exception ex)
       {
           Log.e("Exception" , "Found 1" + ex);
       }
    }

    public void startAnimation()
    {
try {
    final ImageView imageView = (ImageView) findViewById(R.id.imageView);
    final Animation animation_1 = AnimationUtils.loadAnimation(getBaseContext(), R.anim.rotate);
    final Animation animation_2 = AnimationUtils.loadAnimation(getBaseContext(), R.anim.antirotate);
    final Animation animation_3 = AnimationUtils.loadAnimation(getBaseContext(), R.anim.abc_fade_out);

    imageView.startAnimation(animation_2);
    animation_2.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            imageView.startAnimation(animation_1);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

    animation_1.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            try {
                startActivity(new Intent(getApplicationContext(), Login.class));
                finish();
                //imageView.startAnimation(animation_3);
                //mp.release();
            } catch (Exception ex) {
                Log.e("Exception Splash", ex + "");
//                    Toast.makeText(SplashScreen.this, "Sorry, Something went Wrong", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });
}catch(Exception ex)
{
    Log.e("Exception" , "Found 2");
}
    }

    @Override
    protected void onStop() {
        super.onStop();
        try {
            if (mp != null && mp.isPlaying()) {
                mp.stop();
                mp.release();
                mp = null;
            }
        }catch(Exception ex)
        {
            Log.e("Exception Found", ex + "");
        }
    }
}

1 Ответов

Рейтинг:
1

David Crow

Я использовал совершенно другой подход с заставкой для одного из моих приложений, потому что она должна быть готова немедленно, даже до того, как макет будет раздут. Поэтому вместо использования макета я указал фон заставки в качестве фона темы действия.

Итак, я сменил основное занятие на другое. SplashActivity в AndroidManifest.xml файл, например:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/AppTheme.NoActionBar">
</activity>

<activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Фон/тема для игры SplashActivity выглядит как:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>
...
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/gray"/>

    <item>
        <bitmap android:gravity="center" android:src="@mipmap/ic_launcher"/>
    </item>

</layer-list>
То SplashActivity класс тогда выглядит так:
public class SplashActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}
Затем в MainActivity- делай все , что хочешь, как обычно. Возможно, это не совсем то, что вы ищете, но именно так Google делает это и сейчас.