Как я могу показать некоторые представления в ответ с временными интервалами и после последнего открыть другую активность? - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу создать заставку и показать некоторые представления (которые уже сделали их невидимыми в XML), и после того, как последний сделал Visible через Java-код, я хочу открыть другое действие, я знаю, что должен сделать обработчики готовые к выполнению, но я не знаю точно, как это сделать!Может кто-нибудь, пожалуйста, покажите мне, как в коде?это то, что я сделал до сих пор.

public class SplashActivity extends AppCompatActivity {
private static final int SPLASH_TIME_OUT = 3600;
private static final int VIEW_COUNT = 4;
private TextView welcome_tv1, welcome_tv2, welcome_tv3;
private ImageView logo;
private Typeface typeface;
private Handler handler  = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_splash);
    init();
    setAnimations();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(new Intent(SplashActivity.this, MainActivity.class));
            finish();
        }
    }, SPLASH_TIME_OUT);
}

private void setAnimations() {
    YoYo.with(Techniques.FadeInDown)
            .duration(2500)
            .repeat(0)
            .playOn(logo);
    logo.setVisibility(View.VISIBLE);
    YoYo.with(Techniques.FadeInDown)
            .repeat(0)
            .delay(400)
            .duration(1000)
            .playOn(welcome_tv1);
    welcome_tv1.setVisibility(View.VISIBLE);
    YoYo.with(Techniques.FadeInDown)
            .repeat(0)
            .delay(1400)
            .duration(1000)
            .playOn(welcome_tv2);
    welcome_tv2.setVisibility(View.VISIBLE);
    YoYo.with(Techniques.FadeInDown)
            .repeat(0)
            .delay(2800)
            .duration(800)
            .playOn(welcome_tv3);
    welcome_tv3.setVisibility(View.VISIBLE);
}

private void init() {
    welcome_tv1 = findViewById(R.id.welcome_tv_one);
    welcome_tv2 = findViewById(R.id.welcome_tv_two);
    welcome_tv3 = findViewById(R.id.welcome_tv_three);
    typeface = Typeface.createFromAsset(getApplicationContext().getAssets(),
            "Fonts/myFont.ttf");
    logo = findViewById(R.id.logo);
    setTextViews();
}

private void setTextViews() {
    welcome_tv1.setText(getResources().getString(R.string.welcome_tv_txt));
    welcome_tv2.setText(getResources().getString(R.string.welcome_tv2_txt));
    welcome_tv3.setText(getResources().getString(R.string.welcome_tv3_txt));
    welcome_tv1.setTypeface(typeface);
    welcome_tv2.setTypeface(typeface);
    welcome_tv3.setTypeface(typeface);
}

1 Ответ

0 голосов
/ 29 сентября 2019

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

Вы можете увидеть всю реализацию здесь

Надеюсь, это поможет

...