/* * Copyright (C) 2017 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.saulmm.splashes; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewPropertyAnimatorCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.view.animation.DecelerateInterpolator; import android.widget.Button; import android.widget.ImageView; public class OnboardingWithCenterAnimationActivity extends AppCompatActivity { public static final int STARTUP_DELAY = 300; public static final int ANIM_ITEM_DURATION = 1000; public static final int ITEM_DELAY = 300; private boolean animationStarted = false; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { setTheme(R.style.AppTheme); getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); super.onCreate(savedInstanceState); setContentView(R.layout.activity_onboarding_center); } @Override public void onWindowFocusChanged(boolean hasFocus) { if (!hasFocus || animationStarted) { return; } animate(); super.onWindowFocusChanged(hasFocus); } private void animate() { ImageView logoImageView = (ImageView) findViewById(R.id.img_logo); ViewGroup container = (ViewGroup) findViewById(R.id.container); ViewCompat.animate(logoImageView) .translationY(-250) .setStartDelay(STARTUP_DELAY) .setDuration(ANIM_ITEM_DURATION).setInterpolator( new DecelerateInterpolator(1.2f)).start(); for (int i = 0; i < container.getChildCount(); i++) { View v = container.getChildAt(i); ViewPropertyAnimatorCompat viewAnimator; if (!(v instanceof Button)) { viewAnimator = ViewCompat.animate(v) .translationY(50).alpha(1) .setStartDelay((ITEM_DELAY * i) + 500) .setDuration(1000); } else { viewAnimator = ViewCompat.animate(v) .scaleY(1).scaleX(1) .setStartDelay((ITEM_DELAY * i) + 500) .setDuration(500); } viewAnimator.setInterpolator(new DecelerateInterpolator()).start(); } } }