开源一个动画demo

源码下载地址:https://github.com/Sherchen/AnimationsDemo
,欢迎star, fork

效果图

这里写图片描述

Transition动画

if api > 21, use activity transition animation, otherwise use Transitions-Everywhere

if(TransitionHelper.isSysTransitionEnable()) {
                    final Pair<View, String>[] pairs = TransitionHelper.createSafeTransitionParticipants(
                        HomeActivity.this, false,
                            new Pair<>((ImageView) view.findViewById(R.id.iv_item_profile)
                                    , getString(R.string.transition_image))
                    );
                    Intent intent = new Intent(HomeActivity.this, DetailActivity.class);
                    intent.putExtra(DetailActivity.KEY_USE_SYS_TRANSITION, true);
                    TransitionsEntity entity = new TransitionsEntity();
                    entity.setUrl(adapter.getItem(position).getUrl());
                    intent.putExtra(DetailActivity.KEY_ENTITY, entity);
                    ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(HomeActivity.this, pairs);
                    startActivity(intent, transitionActivityOptions.toBundle());
                }else{
                    int[] locs = new int[2];
                    clickImage = (ImageView) view.findViewById(R.id.iv_item_profile);
                    clickImage.getLocationOnScreen(locs);
                    clickOrigin = new TransitionsEntity();
                    clickOrigin.setLeft(locs[0]);
                    clickOrigin.setTop(locs[1]);
                    clickOrigin.setWidth(clickImage.getWidth());
                    clickOrigin.setHeight(clickImage.getHeight());
                    HomeEntity item = (HomeEntity) adapter.getItem(position);
                    clickOrigin.setUrl(item.getUrl());
                    GlideUtils.displayImage(getApplicationContext(), ivTrans, item.getUrl(), R.drawable.def_placeholder);
                    Intent intent = new Intent(HomeActivity.this, DetailActivity.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                    intent.putExtra(DetailActivity.KEY_ENTITY, false);
                    intent.putExtra(DetailActivity.KEY_ENTITY, clickOrigin);
                    startActivityForResult(intent, REQUEST_CODE_DEF);
                    overridePendingTransition(0, 0);
                }
            }

            ivDetail.setTranslationX(lastTranX);
            ivDetail.setTranslationY(lastTranY);
            ivDetail.setVisibility(View.VISIBLE);
            rlDetailRoot.postDelayed(new Runnable() {
                @Override
                public void run() {
                    TransitionManager.beginDelayedTransition(rlDetailRoot, new TranslationTransition().setPathMotion(new ArcMotion()).setDuration(200));
                    ivDetail.setTranslationX(0);
                    ivDetail.setTranslationY(0);
                }
            }, 20);

blur动画

use Blurry

Blurry.with(getActivity())
                .radius(10)
                .sampling(newSampling)
                .async(new Blurry.ImageComposer.ImageComposerListener() {
                    @Override
                    public void onImageReady(BitmapDrawable drawable) {
                          if(lastAlpha == 1f){
                              ivDetailHeader.setImageBitmap(srcHeaderBg);
                          }  else {
                              ivDetailHeader.setImageDrawable(drawable);
                          }
                    }
                })
                .from(srcHeaderBg)
                .into(ivDetailHeader)

recyclerview动画

use recyclerview-animations

rvDetailEvents.setItemAnimator(new SlideInLeftAnimator());
        rvDetailEvents.getItemAnimator().setAddDuration(500);
        rvDetailEvents.getItemAnimator().setRemoveDuration(500);

使用第三方library

  1. https://github.com/Hitomis/transferee
  2. https://github.com/Skykai521/StickerCamera
  3. https://github.com/gogopop/CameraKit-Android
  4. https://github.com/ksoichiro/Android-ObservableScrollView
  5. https://github.com/wasabeef/recyclerview-animators
  6. https://github.com/wasabeef/Blurry
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值