@Override
public void onBackPressed() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
finishAfterTransition();
} else {
mShareElement.convert(mImageView)
.setDuration(ANIMATOR_DURATION)
.setInterpolator(new LinearInterpolator())
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
finish();
overridePendingTransition(0, 0);
}
})
.startExitAnimator();
}
}
java类android.animation.AnimatorListenerAdapter的实例源码
ShareElementActivity.java 文件源码
项目:AndroidShareElement
阅读 25
收藏 0
点赞 0
评论 0
DemoLikePathActivity.java 文件源码
项目:ArcLayout-master
阅读 26
收藏 0
点赞 0
评论 0
@SuppressWarnings("NewApi")
private void hideMenu() {
List<Animator> animList = new ArrayList<>();
for (int i = arcLayout.getChildCount() - 1; i >= 0; i--) {
animList.add(createHideItemAnimator(arcLayout.getChildAt(i)));
}
AnimatorSet animSet = new AnimatorSet();
animSet.setDuration(400);
animSet.setInterpolator(new AnticipateInterpolator());
animSet.playTogether(animList);
animSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
menuLayout.setVisibility(View.INVISIBLE);
}
});
animSet.start();
}
MaterialIn.java 文件源码
项目:AcademApp
阅读 39
收藏 0
点赞 0
评论 0
public static void startAnimators(final View view, int startOffsetX, int startOffsetY, long delay) {
if (view.getVisibility() == View.VISIBLE && view.getAlpha() != 0f) {
view.clearAnimation();
view.animate().cancel();
final Resources res = view.getResources();
final float endAlpha = view.getAlpha();
final float endTranslateX = view.getTranslationX();
final float endTranslateY = view.getTranslationY();
view.setAlpha(0);
final Animator fade = ObjectAnimator.ofFloat(view, View.ALPHA, endAlpha);
fade.setDuration(res.getInteger(R.integer.material_in_fade_anim_duration));
fade.setInterpolator(new AccelerateInterpolator());
fade.setStartDelay(delay);
fade.start();
ViewPropertyAnimator slide = view.animate();
if (startOffsetY != 0) {
view.setTranslationY(startOffsetY);
slide.translationY(endTranslateY);
} else {
view.setTranslationX(startOffsetX);
slide.translationX(endTranslateX);
}
slide.setInterpolator(new DecelerateInterpolator(2));
slide.setDuration(res.getInteger(R.integer.material_in_slide_anim_duration));
slide.setStartDelay(delay);
slide.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationCancel(Animator animation) {
if (fade.isStarted()) {
fade.cancel();
}
view.setAlpha(endAlpha);
view.setTranslationX(endTranslateX);
view.setTranslationY(endTranslateY);
}
});
slide.start();
}
}
TranslationAlphaHideAnimator.java 文件源码
项目:AndroidSkinAnimator
阅读 13
收藏 0
点赞 0
评论 0
@Override
public SkinAnimator apply(@NonNull final View view, @Nullable final Action action) {
int offset = -view.getWidth() / 2;
animator = ObjectAnimator.ofPropertyValuesHolder(view,
PropertyValuesHolder.ofFloat("alpha", 1, 0),
PropertyValuesHolder.ofFloat("translationX", 0, - offset, -offset, offset, offset, 0),
PropertyValuesHolder.ofFloat("rotation", 0, -30, -30, 30, 30, 0),
PropertyValuesHolder.ofFloat("translationY", 0, 3 * view.getHeight())
);
animator.setDuration(5 * PRE_DURATION);
animator.setInterpolator(new LinearInterpolator());
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
resetView(view);
if (action != null) {
action.action();
}
}
});
return this;
}
CircularRevealTransition.java 文件源码
项目:magellan
阅读 14
收藏 0
点赞 0
评论 0
@Override
public void animate(
View from, View to, NavigationType navType, Direction direction, final Callback callback) {
int[] clickedViewCenter = getCenterClickedView((ViewGroup) from);
int circularRevealCenterX = clickedViewCenter[0];
int circularRevealCenterY = clickedViewCenter[1];
float finalRadius = (float) Math.hypot(to.getWidth(), to.getHeight());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
Animator anim =
ViewAnimationUtils.createCircularReveal(to, circularRevealCenterX,
circularRevealCenterY, 0, finalRadius);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
callback.onAnimationEnd();
}
});
anim.start();
} else {
callback.onAnimationEnd();
}
}
FeedContextMenuManager.java 文件源码
项目:InstaFlickr
阅读 23
收藏 0
点赞 0
评论 0
private void performDismissAnimation() {
contextMenuView.setPivotX(contextMenuView.getWidth() / 2);
contextMenuView.setPivotY(contextMenuView.getHeight());
contextMenuView.animate()
.scaleX(0.1f).scaleY(0.1f)
.setDuration(150)
.setInterpolator(new AccelerateInterpolator())
.setStartDelay(100)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (contextMenuView != null) {
contextMenuView.dismiss();
}
isContextMenuDismissing = false;
}
});
}
DatabindingUtils.java 文件源码
项目:DataBindingDemos
阅读 19
收藏 0
点赞 0
评论 0
@BindingAdapter({"android:visibility"})
public static void visibility(final View view, final int newVisibility) {
final boolean makeVisible = newVisibility == View.VISIBLE;
if (makeVisible) {
view.setVisibility(newVisibility);
}
view.animate()
.alpha(makeVisible ? 1.0f : 0.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (!makeVisible) {
view.setVisibility(newVisibility);
}
}
});
}
AnimUtils.java 文件源码
项目:utils-android
阅读 27
收藏 0
点赞 0
评论 0
/**
* Анимация прозрачного перехода между двумя view
*
* @param inView view, которая будет показана после завершения анимации
* @param outView view, которая будет исчезать
* @param duration длительность анимации
*/
public static void crossfade(final View inView, final View outView, final long duration) {
inView.setAlpha(0f);
inView.setVisibility(View.VISIBLE);
inView.animate().alpha(1f).setDuration(duration).setListener(null);
outView.animate()
.alpha(0f)
.setDuration(duration)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
outView.setVisibility(View.GONE);
}
});
}
FindResultBar.java 文件源码
项目:chromium-for-android-56-debug-video
阅读 13
收藏 0
点赞 0
评论 0
/** Dismisses this results bar by removing it from the view hierarchy. */
public void dismiss() {
mDismissing = true;
mFindInPageBridge = null;
if (mVisibilityAnimation != null && mVisibilityAnimation.isRunning()) {
mVisibilityAnimation.cancel();
}
mVisibilityAnimation = ObjectAnimator.ofFloat(this, TRANSLATION_X,
MathUtils.flipSignIf(mBarTouchWidth, LocalizationUtils.isLayoutRtl()));
mVisibilityAnimation.setDuration(VISIBILITY_ANIMATION_DURATION_MS);
mVisibilityAnimation.setInterpolator(BakedBezierInterpolator.FADE_OUT_CURVE);
mTab.getWindowAndroid().startAnimationOverContent(mVisibilityAnimation);
mVisibilityAnimation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (getParent() != null) ((ViewGroup) getParent()).removeView(FindResultBar.this);
}
});
}
PlayerFragment.java 文件源码
项目:Material-Motion
阅读 24
收藏 0
点赞 0
评论 0
private void runIconScale(int delay, @DrawableRes int drawable, int color){
soundPlay.animate()
.scaleY(0)
.scaleX(0)
.setDuration(duration(R.integer.short_delay))
.setStartDelay(delay)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
trackTitle.setTextColor(color);
soundPlay.setImageDrawable(ContextCompat.getDrawable(getContext(),drawable));
soundPlay.animate()
.scaleX(1)
.scaleY(1)
.setDuration(duration(R.integer.scale_duration))
.setListener(null).start();
}
}).start();
}