Search in sources :

Example 66 with Fade

use of android.transition.Fade in project KL2 by jweihao.

the class TransitionsToActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
    int flag = getIntent().getExtras().getInt("flag");
    // 根据flag的值来设置不同的动画效果
    switch(flag) {
        case 0:
            getWindow().setEnterTransition(new Explode());
            break;
        case 1:
            getWindow().setEnterTransition(new Slide());
            break;
        case 2:
            getWindow().setEnterTransition(new Fade());
            getWindow().setExitTransition(new Fade());
        case 3:
            break;
        default:
            break;
    }
    setContentView(R.layout.activity_transitions_to);
}
Also used : Explode(android.transition.Explode) Slide(android.transition.Slide) Fade(android.transition.Fade)

Example 67 with Fade

use of android.transition.Fade in project Camera-Roll-Android-App by kollerlukas.

the class AlbumActivity method onCreate.

@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_album);
    pick_photos = getIntent().getAction() != null && getIntent().getAction().equals(MainActivity.PICK_PHOTOS);
    allowMultiple = getIntent().getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
    MediaProvider.checkPermission(this);
    setExitSharedElementCallback(mCallback);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setEnterTransition(new TransitionSet().setOrdering(TransitionSet.ORDERING_TOGETHER).addTransition(new Slide(Gravity.BOTTOM)).addTransition(new Fade()).setInterpolator(new AccelerateDecelerateInterpolator()));
        getWindow().setReturnTransition(new TransitionSet().setOrdering(TransitionSet.ORDERING_TOGETHER).addTransition(new Slide(Gravity.BOTTOM)).addTransition(new Fade()).setInterpolator(new AccelerateDecelerateInterpolator()));
    }
    final ViewGroup swipeBackView = findViewById(R.id.swipeBackView);
    if (swipeBackView instanceof SwipeBackCoordinatorLayout) {
        ((SwipeBackCoordinatorLayout) swipeBackView).setOnSwipeListener(this);
    }
    final Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    final ActionBar actionBar = getSupportActionBar();
    if (!pick_photos) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            AnimatedVectorDrawable drawable = (AnimatedVectorDrawable) ContextCompat.getDrawable(AlbumActivity.this, R.drawable.back_to_cancel_avd);
            // mutating avd to reset it
            drawable.mutate();
            toolbar.setNavigationIcon(drawable);
        } else {
            toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white);
        }
        Drawable navIcon = toolbar.getNavigationIcon();
        if (navIcon != null) {
            navIcon = DrawableCompat.wrap(navIcon);
            DrawableCompat.setTint(navIcon.mutate(), textColorSecondary);
            toolbar.setNavigationIcon(navIcon);
        }
    } else {
        if (actionBar != null) {
            actionBar.setTitle(allowMultiple ? getString(R.string.pick_photos) : getString(R.string.pick_photo));
        }
        toolbar.setNavigationIcon(R.drawable.ic_clear_white);
        Drawable navIcon = toolbar.getNavigationIcon();
        if (navIcon != null) {
            navIcon = DrawableCompat.wrap(navIcon);
            DrawableCompat.setTint(navIcon.mutate(), accentTextColor);
            toolbar.setNavigationIcon(navIcon);
        }
        Util.setDarkStatusBarIcons(findViewById(R.id.root_view));
        Util.colorToolbarOverflowMenuIcon(toolbar, accentTextColor);
    }
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (recyclerViewAdapter != null && recyclerViewAdapter.isSelectorModeActive()) {
                recyclerViewAdapter.cancelSelectorMode(null);
            } else {
                onBackPressed();
            }
        }
    });
    recyclerView = findViewById(R.id.recyclerView);
    final int columnCount = Settings.getInstance(this).getColumnCount(this);
    GridLayoutManager gridLayoutManager = new GridLayoutManager(this, columnCount);
    recyclerView.setLayoutManager(gridLayoutManager);
    recyclerViewAdapter = new AlbumAdapter(this, recyclerView, album, pick_photos);
    recyclerView.setAdapter(recyclerViewAdapter);
    float albumGridSpacing = getResources().getDimension(R.dimen.album_grid_spacing);
    ((FastScrollerRecyclerView) recyclerView).addOuterGridSpacing((int) (albumGridSpacing / 2));
    recyclerView.addItemDecoration(new GridMarginDecoration((int) albumGridSpacing));
    if (savedInstanceState != null && savedInstanceState.containsKey(RECYCLER_VIEW_SCROLL_STATE)) {
        recyclerView.getLayoutManager().onRestoreInstanceState(savedInstanceState.getParcelable(RECYCLER_VIEW_SCROLL_STATE));
    }
    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        // private float scrollY = 0.0f;
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (recyclerViewAdapter.isSelectorModeActive() || pick_photos) {
                return;
            }
            float translationY = toolbar.getTranslationY() - dy;
            if (-translationY > toolbar.getHeight()) {
                translationY = -toolbar.getHeight();
                if (theme.elevatedToolbar()) {
                    toolbar.setActivated(true);
                }
            } else if (translationY > 0) {
                translationY = 0;
                if (theme.elevatedToolbar() && !recyclerView.canScrollVertically(-1)) {
                    toolbar.setActivated(false);
                }
            }
            toolbar.setTranslationY(translationY);
            // animate statusBarIcon color
            if (theme.darkStatusBarIcons()) {
                float animatedValue = (-translationY) / toolbar.getHeight();
                if (animatedValue > 0.9f) {
                    Util.setLightStatusBarIcons(findViewById(R.id.root_view));
                } else {
                    Util.setDarkStatusBarIcons(findViewById(R.id.root_view));
                }
            }
        }
    });
    final FloatingActionButton fab = findViewById(R.id.fab);
    if (!pick_photos) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Drawable d = ContextCompat.getDrawable(this, R.drawable.ic_delete_avd);
            fab.setImageDrawable(d);
        } else {
            fab.setImageResource(R.drawable.ic_delete_white);
        }
    } else {
        fab.setImageResource(R.drawable.ic_send_white);
    }
    Drawable d = fab.getDrawable();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        d.setTint(accentTextColor);
    } else {
        d = DrawableCompat.wrap(d);
        DrawableCompat.setTint(d.mutate(), accentTextColor);
    }
    fab.setImageDrawable(d);
    fab.setScaleX(0.0f);
    fab.setScaleY(0.0f);
    final ViewGroup rootView = findViewById(R.id.root_view);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
        rootView.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {

            @Override
            @RequiresApi(api = Build.VERSION_CODES.KITKAT_WATCH)
            public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) {
                toolbar.setPadding(toolbar.getPaddingStart(), toolbar.getPaddingTop() + insets.getSystemWindowInsetTop(), toolbar.getPaddingEnd(), toolbar.getPaddingBottom());
                ViewGroup.MarginLayoutParams toolbarParams = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
                toolbarParams.leftMargin += insets.getSystemWindowInsetLeft();
                toolbarParams.rightMargin += insets.getSystemWindowInsetRight();
                toolbar.setLayoutParams(toolbarParams);
                recyclerView.setPadding(recyclerView.getPaddingStart() + insets.getSystemWindowInsetLeft(), recyclerView.getPaddingTop() + insets.getSystemWindowInsetTop(), recyclerView.getPaddingEnd() + insets.getSystemWindowInsetRight(), recyclerView.getPaddingBottom() + insets.getSystemWindowInsetBottom());
                fab.setTranslationY(-insets.getSystemWindowInsetBottom());
                fab.setTranslationX(-insets.getSystemWindowInsetRight());
                rootView.setOnApplyWindowInsetsListener(null);
                return insets.consumeSystemWindowInsets();
            }
        });
    } else {
        rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

            @Override
            public void onGlobalLayout() {
                // hacky way of getting window insets on pre-Lollipop
                // somewhat works...
                int[] screenSize = Util.getScreenSize(AlbumActivity.this);
                int[] windowInsets = new int[] { Math.abs(screenSize[0] - rootView.getLeft()), Math.abs(screenSize[1] - rootView.getTop()), Math.abs(screenSize[2] - rootView.getRight()), Math.abs(screenSize[3] - rootView.getBottom()) };
                toolbar.setPadding(toolbar.getPaddingStart(), toolbar.getPaddingTop() + windowInsets[1], toolbar.getPaddingEnd(), toolbar.getPaddingBottom());
                ViewGroup.MarginLayoutParams toolbarParams = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
                toolbarParams.leftMargin += windowInsets[0];
                toolbarParams.rightMargin += windowInsets[2];
                toolbar.setLayoutParams(toolbarParams);
                recyclerView.setPadding(recyclerView.getPaddingStart() + windowInsets[0], recyclerView.getPaddingTop() + windowInsets[1], recyclerView.getPaddingEnd() + windowInsets[2], recyclerView.getPaddingBottom() + windowInsets[3]);
                recyclerView.scrollToPosition(0);
                fab.setTranslationX(-windowInsets[2]);
                fab.setTranslationY(-windowInsets[3]);
                rootView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }
        });
    }
    // onNewIntent(getIntent());
    // needed for transparent statusBar
    setSystemUiFlags();
    // load album
    String path;
    if (savedInstanceState != null && savedInstanceState.containsKey(ALBUM_PATH)) {
        path = savedInstanceState.getString(ALBUM_PATH);
    } else {
        path = getIntent().getStringExtra(ALBUM_PATH);
    }
    MediaProvider.loadAlbum(this, path, new MediaProvider.OnAlbumLoadedCallback() {

        @Override
        public void onAlbumLoaded(Album album) {
            AlbumActivity.this.album = album;
            AlbumActivity.this.onAlbumLoaded(savedInstanceState);
        }
    });
}
Also used : VirtualAlbum(us.koller.cameraroll.data.models.VirtualAlbum) Album(us.koller.cameraroll.data.models.Album) WindowInsets(android.view.WindowInsets) TransitionSet(android.transition.TransitionSet) Slide(android.transition.Slide) SwipeBackCoordinatorLayout(us.koller.cameraroll.ui.widget.SwipeBackCoordinatorLayout) GridMarginDecoration(us.koller.cameraroll.ui.widget.GridMarginDecoration) AccelerateDecelerateInterpolator(android.view.animation.AccelerateDecelerateInterpolator) FloatingActionButton(android.support.design.widget.FloatingActionButton) FastScrollerRecyclerView(us.koller.cameraroll.ui.widget.FastScrollerRecyclerView) ViewTreeObserver(android.view.ViewTreeObserver) ActionBar(android.support.v7.app.ActionBar) Toolbar(android.support.v7.widget.Toolbar) ViewGroup(android.view.ViewGroup) ColorDrawable(android.graphics.drawable.ColorDrawable) Drawable(android.graphics.drawable.Drawable) AnimatedVectorDrawable(android.graphics.drawable.AnimatedVectorDrawable) View(android.view.View) FastScrollerRecyclerView(us.koller.cameraroll.ui.widget.FastScrollerRecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) AnimatedVectorDrawable(android.graphics.drawable.AnimatedVectorDrawable) GridLayoutManager(android.support.v7.widget.GridLayoutManager) MediaProvider(us.koller.cameraroll.data.provider.MediaProvider) RequiresApi(android.support.annotation.RequiresApi) FastScrollerRecyclerView(us.koller.cameraroll.ui.widget.FastScrollerRecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) ColorFade(us.koller.cameraroll.util.animators.ColorFade) Fade(android.transition.Fade) AlbumAdapter(us.koller.cameraroll.adapter.album.AlbumAdapter)

Example 68 with Fade

use of android.transition.Fade in project TicktockMusic by Lauzy.

the class FragmentAnimUtil method setEnterExitAnim.

public static void setEnterExitAnim(Fragment fragment) {
    Explode explode = new Explode();
    explode.setDuration(350);
    explode.setInterpolator(new DecelerateInterpolator());
    explode.setMode(Visibility.MODE_IN);
    Slide slide = new Slide();
    slide.setSlideEdge(Gravity.LEFT);
    slide.setDuration(200);
    Fade fade = new Fade();
    fade.setDuration(200);
    fragment.setReturnTransition(fade);
    fragment.setEnterTransition(explode);
    fragment.setSharedElementEnterTransition(new FragmentTransition());
    fragment.setSharedElementReturnTransition(new FragmentTransition());
}
Also used : DecelerateInterpolator(android.view.animation.DecelerateInterpolator) Explode(android.transition.Explode) Slide(android.transition.Slide) Fade(android.transition.Fade)

Example 69 with Fade

use of android.transition.Fade in project simple-stack by Zhuinden.

the class SharedElementFragmentStateChanger method configureFragmentTransaction.

@Override
protected void configureFragmentTransaction(@Nonnull FragmentTransaction fragmentTransaction, @Nullable Fragment topPreviousFragment, @Nonnull Fragment topNewFragment, @Nonnull StateChange stateChange) {
    BaseKey topNewKey = stateChange.topNewKey();
    BaseKey topPreviousKey = stateChange.topPreviousKey();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        if (topPreviousFragment != null) {
            topPreviousFragment.setExitTransition(new Fade());
        }
        topNewFragment.setEnterTransition(new Fade());
        if (topNewKey instanceof HasSharedElement || topPreviousKey instanceof HasSharedElement) {
            topNewFragment.setSharedElementEnterTransition(new DetailsTransition());
            topNewFragment.setSharedElementReturnTransition(new DetailsTransition());
            if (topPreviousFragment != null) {
                topPreviousFragment.setSharedElementEnterTransition(new DetailsTransition());
                topPreviousFragment.setSharedElementReturnTransition(new DetailsTransition());
            }
        }
    }
    fragmentTransaction.setReorderingAllowed(true);
    if (topNewKey instanceof HasSharedElement) {
        HasSharedElement forwardKey = (HasSharedElement) topNewKey;
        if (forwardKey.sharedElement() != null) {
            // to eliminate use of WeakReference<View>, we add the view's transition name to the FragmentTransaction directly.
            BackstackRecordAccessor.addSharedElement(fragmentTransaction, forwardKey.sharedElement().sourceTransitionName(), forwardKey.sharedElement().targetTransitionName());
        }
    }
    if (topPreviousKey instanceof HasSharedElement) {
        HasSharedElement backwardKey = (HasSharedElement) topPreviousKey;
        if (backwardKey.sharedElement() != null) {
            // during back navigation, we must invert the received "source" and "target".
            BackstackRecordAccessor.addSharedElement(fragmentTransaction, backwardKey.sharedElement().targetTransitionName(), backwardKey.sharedElement().sourceTransitionName());
        }
    }
}
Also used : HasSharedElement(com.example.fragmenttransitions.core.sharedelements.HasSharedElement) Fade(android.transition.Fade) DetailsTransition(com.example.fragmenttransitions.core.sharedelements.DetailsTransition)

Example 70 with Fade

use of android.transition.Fade in project Android-Material-Examples by saulmm.

the class GUIUtils method configureWindowEnterExitExplodeTransition.

public static void configureWindowEnterExitExplodeTransition(Window w) {
    Fade ex = new Fade();
    ex.setInterpolator(new PathInterpolator(0.4f, 0, 1, 1));
    ex.setDuration(5000);
    w.setExitTransition(ex);
    w.setEnterTransition(ex);
}
Also used : PathInterpolator(android.view.animation.PathInterpolator) Fade(android.transition.Fade)

Aggregations

Fade (android.transition.Fade)77 TransitionSet (android.transition.TransitionSet)52 ChangeBounds (android.transition.ChangeBounds)47 View (android.view.View)40 TransitionManager (android.transition.TransitionManager)28 Recolor (android.transition.Recolor)24 Transition (android.transition.Transition)18 TextView (android.widget.TextView)14 Slide (android.transition.Slide)9 ImageView (android.widget.ImageView)7 ViewTreeObserver (android.view.ViewTreeObserver)6 FragmentTransaction (android.app.FragmentTransaction)5 RecyclerView (android.support.v7.widget.RecyclerView)5 AutoTransition (android.transition.AutoTransition)5 LayoutInflater (android.view.LayoutInflater)5 DecelerateInterpolator (android.view.animation.DecelerateInterpolator)5 Crossfade (android.transition.Crossfade)4 Rotate (android.transition.Rotate)4 Scene (android.transition.Scene)4 ViewGroup (android.view.ViewGroup)4