android.view.Window.setSharedElementEnterTransition()方法的使用及代码示例

x33g5p2x  于2022-02-02 转载在 其他  
字(14.3k)|赞(0)|评价(0)|浏览(87)

本文整理了Java中android.view.Window.setSharedElementEnterTransition()方法的一些代码示例,展示了Window.setSharedElementEnterTransition()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Window.setSharedElementEnterTransition()方法的具体详情如下:
包路径:android.view.Window
类名称:Window
方法名:setSharedElementEnterTransition

Window.setSharedElementEnterTransition介绍

暂无

代码示例

代码示例来源:origin: nickbutcher/plaid

/**
 * Create a {@link FabTransform} from the supplied {@code activity} extras and set as its
 * shared element enter/return transition.
 */
public static boolean setup(@NonNull Activity activity, @Nullable View target) {
  final Intent intent = activity.getIntent();
  if (!intent.hasExtra(EXTRA_FAB_COLOR) || !intent.hasExtra(EXTRA_FAB_ICON_RES_ID)) {
    return false;
  }
  final int color = intent.getIntExtra(EXTRA_FAB_COLOR, Color.TRANSPARENT);
  final int icon = intent.getIntExtra(EXTRA_FAB_ICON_RES_ID, -1);
  final FabTransform sharedEnter = new FabTransform(color, icon);
  if (target != null) {
    sharedEnter.addTarget(target);
  }
  activity.getWindow().setSharedElementEnterTransition(sharedEnter);
  return true;
}

代码示例来源:origin: nickbutcher/plaid

/**
 * Configure {@link MorphTransform}s & set as {@code activity}'s shared element enter and return
 * transitions.
 */
public static void setup(@NonNull Activity activity,
             @Nullable View target,
             @ColorInt int endColor,
             int endCornerRadius) {
  final Intent intent = activity.getIntent();
  if (intent == null
      || !intent.hasExtra(EXTRA_SHARED_ELEMENT_START_COLOR)
      || !intent.hasExtra(EXTRA_SHARED_ELEMENT_START_CORNER_RADIUS)) return;
  final int startColor = activity.getIntent().
      getIntExtra(EXTRA_SHARED_ELEMENT_START_COLOR, Color.TRANSPARENT);
  final int startCornerRadius =
      intent.getIntExtra(EXTRA_SHARED_ELEMENT_START_CORNER_RADIUS, 0);
  final MorphTransform sharedEnter =
      new MorphTransform(startColor, endColor, startCornerRadius, endCornerRadius);
  // Reverse the start/end params for the return transition
  final MorphTransform sharedReturn =
      new MorphTransform(endColor, startColor, endCornerRadius, startCornerRadius);
  if (target != null) {
    sharedEnter.addTarget(target);
    sharedReturn.addTarget(target);
  }
  activity.getWindow().setSharedElementEnterTransition(sharedEnter);
  activity.getWindow().setSharedElementReturnTransition(sharedReturn);
}

代码示例来源:origin: xinghongfei/LookLook

getWindow().setSharedElementEnterTransition(new ChangeBounds());

代码示例来源:origin: hitherejoe/animate

public void setupSharedElementTransitionsFab(@NonNull Activity activity,
                       @Nullable View target,
                       int dialogCornerRadius) {
  ArcMotion arcMotion = new ArcMotion();
  arcMotion.setMinimumHorizontalAngle(50f);
  arcMotion.setMinimumVerticalAngle(50f);
  int color = ContextCompat.getColor(activity, R.color.accent);
  Interpolator easeInOut =
      AnimationUtils.loadInterpolator(activity, android.R.interpolator.fast_out_slow_in);
  MorphFabToDialog sharedEnter = new MorphFabToDialog(color, dialogCornerRadius);
  sharedEnter.setPathMotion(arcMotion);
  sharedEnter.setInterpolator(easeInOut);
  MorphDialogToFab sharedReturn = new MorphDialogToFab(color);
  sharedReturn.setPathMotion(arcMotion);
  sharedReturn.setInterpolator(easeInOut);
  if (target != null) {
    sharedEnter.addTarget(target);
    sharedReturn.addTarget(target);
  }
  activity.getWindow().setSharedElementEnterTransition(sharedEnter);
  activity.getWindow().setSharedElementReturnTransition(sharedReturn);
}

代码示例来源:origin: hitherejoe/animate

public void setupSharedElementTransitionsButton(@NonNull Activity activity,
                        @Nullable View target) {
  ArcMotion arcMotion = new ArcMotion();
  arcMotion.setMinimumHorizontalAngle(50f);
  arcMotion.setMinimumVerticalAngle(50f);
  int color = ContextCompat.getColor(activity, R.color.accent);
  Interpolator easeInOut =
      AnimationUtils.loadInterpolator(activity, android.R.interpolator.fast_out_slow_in);
  MorphButtonToDialog sharedEnter = new MorphButtonToDialog(color);
  sharedEnter.setPathMotion(arcMotion);
  sharedEnter.setInterpolator(easeInOut);
  MorphDialogToButton sharedReturn = new MorphDialogToButton(color);
  sharedReturn.setPathMotion(arcMotion);
  sharedReturn.setInterpolator(easeInOut);
  if (target != null) {
    sharedEnter.addTarget(target);
    sharedReturn.addTarget(target);
  }
  activity.getWindow().setSharedElementEnterTransition(sharedEnter);
  activity.getWindow().setSharedElementReturnTransition(sharedReturn);
}

代码示例来源:origin: fanrunqi/MaterialLogin

private void ShowEnterAnimation() {
  Transition transition = TransitionInflater.from(this).inflateTransition(R.transition.fabtransition);
  getWindow().setSharedElementEnterTransition(transition);
  transition.addListener(new Transition.TransitionListener() {
    @Override
    public void onTransitionStart(Transition transition) {
      cvAdd.setVisibility(View.GONE);
    }
    @Override
    public void onTransitionEnd(Transition transition) {
      transition.removeListener(this);
      animateRevealShow();
    }
    @Override
    public void onTransitionCancel(Transition transition) {
    }
    @Override
    public void onTransitionPause(Transition transition) {
    }
    @Override
    public void onTransitionResume(Transition transition) {
    }
  });
}

代码示例来源:origin: xinghongfei/LookLook

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.zhihudescribe);
  setDragEdge(SwipeBackLayout.DragEdge.LEFT);
  ButterKnife.bind(this);
  mDeviceInfo = DensityUtil.getDeviceInfo(this);
  width = mDeviceInfo[0];
  heigh = width * 3 / 4;
  setSupportActionBar(mToolbar);
  initlistenr();
  initData();
  initView();
  getData();
  chromeFader = new ElasticDragDismissFrameLayout.SystemChromeFader(this);
  if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
    getWindow().getSharedElementReturnTransition().addListener(zhihuReturnHomeListener);
    getWindow().setSharedElementEnterTransition(new ChangeBounds());
  }
  enterAnimation();
}

代码示例来源:origin: ongakuer/PhotoDraweeView

@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void initWindowTransitions() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
      AutoTransition transition = new AutoTransition();
      getWindow().setSharedElementEnterTransition(transition);
      getWindow().setSharedElementExitTransition(transition);
      ActivityCompat.setEnterSharedElementCallback(this, new SharedElementCallback() {
        @Override public void onSharedElementEnd(List<String> sharedElementNames,
            List<View> sharedElements, List<View> sharedElementSnapshots) {
          for (final View view : sharedElements) {
            if (view instanceof PhotoDraweeView) {
              ((PhotoDraweeView) view).setScale(1f, true);
            }
          }
        }
      });
    }
  }
}

代码示例来源:origin: mohak1712/UberUX

private void setupWindowAnimations() {
  ChangeBounds enterTransition = new ChangeBounds();
  enterTransition.setDuration(1000);
  enterTransition.setInterpolator(new DecelerateInterpolator(4));
  enterTransition.addListener(enterTransitionListener);
  getWindow().setSharedElementEnterTransition(enterTransition);
  ChangeBounds returnTransition = new ChangeBounds();
  returnTransition.setDuration(1000);
  returnTransition.addListener(returnTransitionListener);
  getWindow().setSharedElementReturnTransition(returnTransition);
  Slide exitSlide = new Slide(LEFT);
  exitSlide.setDuration(700);
  exitSlide.addListener(exitTransitionListener);
  exitSlide.addTarget(R.id.llphone);
  exitSlide.setInterpolator(new DecelerateInterpolator());
  getWindow().setExitTransition(exitSlide);
  Slide reenterSlide = new Slide(LEFT);
  reenterSlide.setDuration(700);
  reenterSlide.addListener(reenterTransitionListener);
  reenterSlide.setInterpolator(new DecelerateInterpolator(2));
  reenterSlide.addTarget(R.id.llphone);
  getWindow().setReenterTransition(reenterSlide);
}

代码示例来源:origin: yugai/DouYu-Android

/**
 * Create a {@link FabTransform} from the supplied {@code activity} extras and set as its
 * shared element enter/return transition.
 */
public static boolean setup(@NonNull Activity activity, @Nullable View target) {
  final Intent intent = activity.getIntent();
  if (!intent.hasExtra(EXTRA_FAB_COLOR) || !intent.hasExtra(EXTRA_FAB_ICON_RES_ID)) {
    return false;
  }
  final int color = intent.getIntExtra(EXTRA_FAB_COLOR, Color.TRANSPARENT);
  final int icon = intent.getIntExtra(EXTRA_FAB_ICON_RES_ID, -1);
  final FabTransform sharedEnter = new FabTransform(color, icon);
  if (target != null) {
    sharedEnter.addTarget(target);
  }
  activity.getWindow().setSharedElementEnterTransition(sharedEnter);
  return true;
}

代码示例来源:origin: com.albedinsky.android/ui

/**
 * Attaches all transitions for shared elements specified for this navigational transition to
 * the given <var>window</var>.
 * <p>
 * This will attach only transitions of which particular flags are contained within {@link #mTransitions}
 * flags.
 *
 * @param window The window to which should be transitions attached.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void attachSharedElementTransitions(Window window) {
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_ENTER) != 0)
    window.setSharedElementEnterTransition(mSharedElementEnterTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_REENTER) != 0)
    window.setSharedElementReenterTransition(mSharedElementReenterTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_RETURN) != 0)
    window.setSharedElementReturnTransition(mSharedElementReturnTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_EXIT) != 0)
    window.setSharedElementExitTransition(mSharedElementExitTransition);
}

代码示例来源:origin: com.albedinsky.android/ui-transition

/**
 * Attaches all transitions for shared elements specified for this navigational transition to
 * the given <var>window</var>.
 * <p>
 * This will attach only transitions of which particular flags are contained within {@link #mTransitions}
 * flags.
 *
 * @param window The window to which should be transitions attached.
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void attachSharedElementTransitions(Window window) {
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_ENTER) != 0)
    window.setSharedElementEnterTransition(mSharedElementEnterTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_REENTER) != 0)
    window.setSharedElementReenterTransition(mSharedElementReenterTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_RETURN) != 0)
    window.setSharedElementReturnTransition(mSharedElementReturnTransition);
  if ((mTransitions & TRANSITION_SHARED_ELEMENT_EXIT) != 0)
    window.setSharedElementExitTransition(mSharedElementExitTransition);
}

代码示例来源:origin: SpikeKing/wcl-circle-reveal-demo

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setupEnterAnimation() {
  Transition transition = TransitionInflater.from(this)
      .inflateTransition(R.transition.arc_motion);
  transition.addListener(new Transition.TransitionListener() {
    @Override public void onTransitionStart(Transition transition) {
    }
    @Override public void onTransitionEnd(Transition transition) {
      transition.removeListener(this);
      animateRevealShow();
    }
    @Override public void onTransitionCancel(Transition transition) {
    }
    @Override public void onTransitionPause(Transition transition) {
    }
    @Override public void onTransitionResume(Transition transition) {
    }
  });
  getWindow().setSharedElementEnterTransition(transition);
}

代码示例来源:origin: lynfogeek/conference-app

/**
 * Enable to share views across activities with animation
 * on Android 5.0 Lollipop
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setupLollipop() {
  getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
  getWindow().setSharedElementExitTransition(new ChangeBounds());
  getWindow().setSharedElementEnterTransition(new ChangeBounds());
}

代码示例来源:origin: lynfogeek/conference-app

/**
 * Enable to share views across activities with animation
 * on Android 5.0 Lollipop
 */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setupLollipop() {
  getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
  getWindow().setSharedElementExitTransition(new ChangeBounds());
  getWindow().setSharedElementEnterTransition(new ChangeBounds());
}

代码示例来源:origin: shalskar/PeekAndPopDemo

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_example);
  if(Build.VERSION.SDK_INT >= 21) {
    getWindow().setSharedElementEnterTransition(enterTransition());
    getWindow().setSharedElementExitTransition(null);
    getWindow().setSharedElementReturnTransition(null);
    getWindow().setExitTransition(null);
    getWindow().setReturnTransition(null);
  }
  imageUrl = getIntent().getExtras().getString(Constants.IMAGE_URL);
  loadImage();
}

代码示例来源:origin: adgvcxz/Dribbble-MVVM

private void initTranslation(ActivityShotsDetailBinding binding) {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    ViewCompat.setAlpha(binding.toolbar, 0f);
    getWindow().setSharedElementEnterTransition(DraweeTransition.createTransitionSet(ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.CENTER_CROP));
    getWindow().setSharedElementReturnTransition(DraweeTransition.createTransitionSet(ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.CENTER_CROP));
    ViewCompat.setTransitionName(binding.imageView, Util.ShotImage);
  }
}

代码示例来源:origin: WakeHao/TransitionExample

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_with_shared_element_transitions);
  initView();
  initToolbar();
  getWindow().setEnterTransition(initContentEnterTransition());
  getWindow().setSharedElementEnterTransition(initSharedElementEnterTransition());
  getWindow().setReturnTransition(TransitionInflater.from(this).inflateTransition(R.transition.return_slide));
}

代码示例来源:origin: youlookwhat/ScrollShapeUI

/**
 * 设置自定义 Shared Element切换动画
 */
private void setMotion() {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    //定义ArcMotion
    ArcMotion arcMotion = new ArcMotion();
    arcMotion.setMinimumHorizontalAngle(50f);
    arcMotion.setMinimumVerticalAngle(50f);
    //插值器,控制速度
    Interpolator interpolator = AnimationUtils.loadInterpolator(this, android.R.interpolator.fast_out_slow_in);
    //实例化自定义的ChangeBounds
    CustomChangeBounds changeBounds = new CustomChangeBounds();
    changeBounds.setPathMotion(arcMotion);
    changeBounds.setInterpolator(interpolator);
    changeBounds.addTarget(binding.include.ivOnePhoto);
    //将切换动画应用到当前的Activity的进入和返回
    getWindow().setSharedElementEnterTransition(changeBounds);
    getWindow().setSharedElementReturnTransition(changeBounds);
  }
}

代码示例来源:origin: AdityaAnand1/Morphing-Material-Dialogs

public void setupSharedEelementTransitions() {
  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
    return; //Show dialog normally if below Lollipop
  ArcMotion arcMotion = new ArcMotion();
  arcMotion.setMinimumHorizontalAngle(50f);
  arcMotion.setMinimumVerticalAngle(50f);
  Interpolator easeInOut = AnimationUtils.loadInterpolator(this, android.R.interpolator.fast_out_slow_in);
  MorphFabToDialog sharedEnter = new MorphFabToDialog(getBackgroundColor());
  sharedEnter.setPathMotion(arcMotion);
  sharedEnter.setInterpolator(easeInOut);
  MorphDialogToFab sharedReturn = new MorphDialogToFab(getBackgroundColor());
  sharedReturn.setPathMotion(arcMotion);
  sharedReturn.setInterpolator(easeInOut);
  if (ui.container != null) {
    sharedEnter.addTarget(ui.container);
    sharedReturn.addTarget(ui.container);
  }
  getWindow().setSharedElementEnterTransition(sharedEnter);
  getWindow().setSharedElementReturnTransition(sharedReturn);
}

相关文章

微信公众号

最新文章

更多

Window类方法