/** * change the image with a fade * * @param drawable * @param fadeDuration */ public static void setImageDrawable(final ImageView imageView, final Drawable drawable, final int fadeDuration) { final float alpha = ViewCompat.getAlpha(imageView); final ImageView viewToAnimate = imageView; fadeOut(viewToAnimate, fadeDuration, new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { super.onAnimationEnd(view); //change the image when alpha=0 imageView.setImageDrawable(drawable); //then fade to alpha=1 fadeIn(viewToAnimate, alpha, fadeDuration, new ViewPropertyAnimatorListenerAdapter()); } }); }
@Override protected void onDispose() { animator.setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(final View view) { try { animationCancelAction.accept(view); } catch (Exception e) { e.printStackTrace(); } } }); animator.cancel(); animator.setListener(null); }
/** * Hide the label */ private void hideLabel(boolean animate) { if (animate) { float scale = mEditText.getTextSize() / mLabel.getTextSize(); ViewCompat.setScaleX(mLabel, 1f); ViewCompat.setScaleY(mLabel, 1f); ViewCompat.setTranslationY(mLabel, 0f); ViewCompat.animate(mLabel) .translationY(mLabel.getHeight()) .setDuration(ANIMATION_DURATION) .scaleX(scale) .scaleY(scale) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }) .setInterpolator(mInterpolator).start(); } else { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }
private void animateIn(final CardView view) { if (animInProgress) return; animInProgress = true; view.setVisibility(View.VISIBLE); ViewCompat.animate(view).translationX(shownPosX) .setInterpolator(interpolator).withLayer() .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view1) { super.onAnimationEnd(view1); animInProgress = false; if (currentPos > 400) animateIn(view); else animateOut(view); } }) .start(); }
private void animateOut(final CardView view) { if (animInProgress) return; animInProgress = true; view.setVisibility(View.VISIBLE); ViewCompat.animate(view).translationX(hiddenPosX) .setInterpolator(interpolator).withLayer() .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view1) { super.onAnimationEnd(view1); animInProgress = false; if (currentPos > 400) animateIn(view); else animateOut(view); } }) .start(); }
public void dismiss() { ViewCompat.animate(container) .alpha(0f) .setDuration(container.getResources().getInteger(android.R.integer.config_mediumAnimTime)) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { super.onAnimationEnd(view); ViewParent parent = view.getParent(); if (parent instanceof ViewGroup) { ((ViewGroup) parent).removeView(view); } if (listener != null) { listener.onDismissed(); } } }).start(); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void revealFragmentContainerLollipop(final View clickedView, final FrameLayout fragmentContainer) { prepareCircularReveal(clickedView, fragmentContainer); ViewCompat.animate(clickedView) .scaleX(0) .scaleY(0) .alpha(0) .setInterpolator(mInterpolator) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { fragmentContainer.setVisibility(View.VISIBLE); clickedView.setVisibility(View.GONE); } }) .start(); fragmentContainer.setVisibility(View.VISIBLE); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.play(mCircularReveal).with(mColorChange); animatorSet.start(); }
private void showProgress() { mIntroduction.setVisibility(View.GONE); if (mResults.getVisibility() == View.VISIBLE) { mHidingResult = true; ViewCompat.animate(mResults) .alpha(0.f) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mHidingResult = false; view.setVisibility(View.INVISIBLE); } }); } if (mProgress.getVisibility() == View.INVISIBLE) { mProgress.setVisibility(View.VISIBLE); ViewCompat.setAlpha(mProgress, 0.f); ViewCompat.animate(mProgress) .alpha(1.f) .setListener(null) .start(); } }
private void showResults() { mIntroduction.setVisibility(View.GONE); if (mProgress.getVisibility() == View.VISIBLE) { ViewCompat.animate(mProgress) .alpha(0.f) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { view.setVisibility(View.INVISIBLE); } }); } if (mHidingResult) { ViewCompat.animate(mResults).cancel(); } if (mResults.getVisibility() == View.INVISIBLE) { mResults.setVisibility(View.VISIBLE); ViewCompat.setAlpha(mResults, 0.01f); ViewCompat.animate(mResults) .alpha(1.f) .setListener(null) .start(); } }
public void animateActionButton() { if (View.VISIBLE == mActionButton.getVisibility()) { ViewCompat.animate(mActionButton).scaleX(0.0F).scaleY(0.0F).alpha(0.0F) .setInterpolator(INTERPOLATOR).withLayer() .setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { mActionButton.setVisibility(View.GONE); animateActionButton(); } }) .start(); } else { setActionButtonColor(); mActionButton.setVisibility(View.VISIBLE); ViewCompat.animate(mActionButton).scaleX(1.0F).scaleY(1.0F).alpha(1.0F) .setInterpolator(INTERPOLATOR).withLayer().setListener(null) .start(); } }
private void hideLabel(boolean animate) { if (animate) { float scale = mEditText.getTextSize() / mLabel.getTextSize(); ViewCompat.setScaleX(mLabel, 1f); ViewCompat.setScaleY(mLabel, 1f); ViewCompat.setTranslationY(mLabel, 0f); ViewCompat.animate(mLabel) .translationY(mLabel.getHeight()) .setDuration(ANIMATION_DURATION) .scaleX(scale) .scaleY(scale) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }) .setInterpolator(mInterpolator).start(); } else { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }
/** * 隐藏跳转提示 */ private void _hideSkipTip() { if (mLlSkipLayout.getVisibility() == GONE) { return; } ViewCompat.animate(mLlSkipLayout).translationX(-mLlSkipLayout.getWidth()).alpha(0).setDuration(500) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mLlSkipLayout.setVisibility(GONE); } }).start(); mSkipPosition = INVALID_VALUE; }
public static void fadeOut(View view, int fadeDuration, ViewPropertyAnimatorListenerAdapter listener) { //fade to alpha=0 ViewCompat.animate(view) .alpha(0) .setDuration(fadeDuration) .withLayer() .setInterpolator(new DecelerateInterpolator()) .setListener(listener); }
public static void fadeIn(View view, float alpha, int fadeDuration, ViewPropertyAnimatorListenerAdapter listener) { //fade to alpha=0 ViewCompat.animate(view) .alpha(alpha) .setDuration(fadeDuration) .withLayer() .setInterpolator(new AccelerateInterpolator()) .setListener(listener); }
/** * Hide the label */ private void hideLabel(boolean animate) { if (animate) { float scale = mEditText.getTextSize() / mLabel.getTextSize(); ViewCompat.setScaleX(mLabel, 1f); ViewCompat.setScaleY(mLabel, 1f); ViewCompat.setTranslationY(mLabel, 0f); ViewCompat.animate(mLabel) .translationY(mLabel.getHeight()) .setDuration(ANIMATION_DURATION) .scaleX(scale) .scaleY(scale) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }) .setInterpolator(mInterpolator) .start(); } else { mLabel.setVisibility(INVISIBLE); mEditText.setHint(mHint); } }
public void popTopTip(final int contentRes) { if (this.mTopTipViewTv == null) { this.mTopTipViewTv = (TextView) getLayoutInflater().inflate(R.layout.mq_top_pop_tip, null); this.mTopTipViewTv.setText(contentRes); int height = getResources().getDimensionPixelOffset(R.dimen.mq_top_tip_height); this.mChatBodyRl.addView(this.mTopTipViewTv, -1, height); ViewCompat.setTranslationY(this.mTopTipViewTv, (float) (-height)); ViewCompat.animate(this.mTopTipViewTv).translationY(0.0f).setDuration(300).start(); if (this.autoDismissTopTipRunnable == null) { this.autoDismissTopTipRunnable = new Runnable() { public void run() { MQConversationActivity.this.popTopTip(contentRes); } }; } this.mHandler.postDelayed(this.autoDismissTopTipRunnable, AUTO_DISMISS_TOP_TIP_TIME); return; } this.mHandler.removeCallbacks(this.autoDismissTopTipRunnable); ViewCompat.animate(this.mTopTipViewTv).translationY((float) (-this.mTopTipViewTv .getHeight())).setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { MQConversationActivity.this.mChatBodyRl.removeView(MQConversationActivity.this .mTopTipViewTv); MQConversationActivity.this.mTopTipViewTv = null; } }).setDuration(300).start(); }
private void showTitlebar() { ViewCompat.animate(this.mTitleRl).translationY(0.0f).setInterpolator(new DecelerateInterpolator(2.0f)).setListener(new ViewPropertyAnimatorListenerAdapter () { public void onAnimationEnd(View view) { MQPhotoPreviewActivity.this.mIsHidden = false; } }).start(); }
private void hiddenTitlebar() { ViewCompat.animate(this.mTitleRl).translationY((float) (-this.mTitleRl.getHeight())) .setInterpolator(new DecelerateInterpolator(2.0f)).setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { MQPhotoPreviewActivity.this.mIsHidden = true; } }).start(); }
private void showTitlebarAndChoosebar() { ViewCompat.animate(this.mTitleRl).translationY(0.0f).setInterpolator(new DecelerateInterpolator(2.0f)).setListener(new ViewPropertyAnimatorListenerAdapter () { public void onAnimationEnd(View view) { MQPhotoPickerPreviewActivity.this.mIsHidden = false; } }).start(); if (!this.mIsFromTakePhoto) { this.mChooseRl.setVisibility(0); ViewCompat.setAlpha(this.mChooseRl, 0.0f); ViewCompat.animate(this.mChooseRl).alpha(1.0f).setInterpolator(new DecelerateInterpolator(2.0f)).start(); } }
private void hiddenTitlebarAndChoosebar() { ViewCompat.animate(this.mTitleRl).translationY((float) (-this.mTitleRl.getHeight())) .setInterpolator(new DecelerateInterpolator(2.0f)).setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { MQPhotoPickerPreviewActivity.this.mIsHidden = true; MQPhotoPickerPreviewActivity.this.mChooseRl.setVisibility(4); } }).start(); if (!this.mIsFromTakePhoto) { ViewCompat.animate(this.mChooseRl).alpha(0.0f).setInterpolator(new DecelerateInterpolator(2.0f)).start(); } }
public void onDestroyActionMode(ActionMode mode) { this.mWrapped.onDestroyActionMode(mode); if (AppCompatDelegateImplV7.this.mActionModePopup != null) { AppCompatDelegateImplV7.this.mWindow.getDecorView().removeCallbacks(AppCompatDelegateImplV7.this.mShowActionModePopup); } if (AppCompatDelegateImplV7.this.mActionModeView != null) { AppCompatDelegateImplV7.this.endOnGoingFadeAnimation(); AppCompatDelegateImplV7.this.mFadeAnim = ViewCompat.animate(AppCompatDelegateImplV7.this.mActionModeView).alpha(0.0f); AppCompatDelegateImplV7.this.mFadeAnim.setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { AppCompatDelegateImplV7.this.mActionModeView.setVisibility(8); if (AppCompatDelegateImplV7.this.mActionModePopup != null) { AppCompatDelegateImplV7.this.mActionModePopup.dismiss(); } else if (AppCompatDelegateImplV7.this.mActionModeView.getParent() instanceof View) { ViewCompat.requestApplyInsets((View) AppCompatDelegateImplV7.this.mActionModeView.getParent()); } AppCompatDelegateImplV7.this.mActionModeView.removeAllViews(); AppCompatDelegateImplV7.this.mFadeAnim.setListener(null); AppCompatDelegateImplV7.this.mFadeAnim = null; } }); } if (AppCompatDelegateImplV7.this.mAppCompatCallback != null) { AppCompatDelegateImplV7.this.mAppCompatCallback.onSupportActionModeFinished(AppCompatDelegateImplV7.this.mActionMode); } AppCompatDelegateImplV7.this.mActionMode = null; }
public void setHelperText(CharSequence _helperText) { mHelperText = _helperText; if (!this.mHelperTextEnabled) { if (TextUtils.isEmpty(mHelperText)) { return; } this.setHelperTextEnabled(true); } if (!TextUtils.isEmpty(mHelperText)) { this.mHelperView.setText(mHelperText); this.mHelperView.setVisibility(VISIBLE); ViewCompat.setAlpha(this.mHelperView, 0.0F); ViewCompat.animate(this.mHelperView) .alpha(1.0F).setDuration(200L) .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR) .setListener(null).start(); } else if (this.mHelperView.getVisibility() == VISIBLE) { ViewCompat.animate(this.mHelperView) .alpha(0.0F).setDuration(200L) .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR) .setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { mHelperView.setText(null); mHelperView.setVisibility(INVISIBLE); } }).start(); } this.sendAccessibilityEvent(2048); }
public void startAnimator(FloatingActionButton fab, ViewPropertyAnimatorListenerAdapter adapter) { ViewCompat.animate(fab).scaleX(1f).scaleY(1f) .setDuration(200) .alpha(1f) .setInterpolator(new DecelerateInterpolator(1.2f)) .setListener(adapter) .start(); }
private void setHelperText(CharSequence helperText) { this.helperText = helperText; if (!this.helperTextEnabled) { if (TextUtils.isEmpty(helperText)) { return; } this.setHelperTextEnabled(true); } if (!TextUtils.isEmpty(helperText)) { this.helperView.setText(helperText); this.helperView.setVisibility(View.VISIBLE); ViewCompat.setAlpha(this.helperView, 0.0F); ViewCompat.animate(this.helperView) .alpha(1.0F) .setDuration(200L) .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR) .setListener(null) .start(); } else if (this.helperView.getVisibility() == VISIBLE) { ViewCompat.animate(this.helperView) .alpha(0.0F) .setDuration(200L) .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR) .setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { helperView.setText(null); helperView.setVisibility(INVISIBLE); } }) .start(); } this.sendAccessibilityEvent(2048); }
private Subscription createClearSubscription(final ViewPropertyAnimatorCompat animator) { return new ClearSubscription(() -> { animator.setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationCancel(final View view) { onAnimationCancelAction.call(view); } }); animator.cancel(); animator.setListener(null); }); }
public final void onDestroyActionMode(ActionMode paramActionMode) { this.mWrapped.onDestroyActionMode(paramActionMode); if (AppCompatDelegateImplV7.this.mActionModePopup != null) { AppCompatDelegateImplV7.this.mWindow.getDecorView().removeCallbacks(AppCompatDelegateImplV7.this.mShowActionModePopup); } if (AppCompatDelegateImplV7.this.mActionModeView != null) { AppCompatDelegateImplV7.this.endOnGoingFadeAnimation(); AppCompatDelegateImplV7.this.mFadeAnim = ViewCompat.animate(AppCompatDelegateImplV7.this.mActionModeView).alpha(0.0F); AppCompatDelegateImplV7.this.mFadeAnim.setListener(new ViewPropertyAnimatorListenerAdapter() { public final void onAnimationEnd(View paramAnonymousView) { AppCompatDelegateImplV7.this.mActionModeView.setVisibility(8); if (AppCompatDelegateImplV7.this.mActionModePopup != null) { AppCompatDelegateImplV7.this.mActionModePopup.dismiss(); } for (;;) { AppCompatDelegateImplV7.this.mActionModeView.removeAllViews(); AppCompatDelegateImplV7.this.mFadeAnim.setListener(null); AppCompatDelegateImplV7.this.mFadeAnim = null; return; if ((AppCompatDelegateImplV7.this.mActionModeView.getParent() instanceof View)) { ViewCompat.requestApplyInsets((View)AppCompatDelegateImplV7.this.mActionModeView.getParent()); } } } }); } AppCompatDelegateImplV7.this.mActionMode = null; }
@Override public void onBackPressed() { if (mQuizFab == null) { // Skip the animation if icon or fab are not initialized. super.onBackPressed(); return; } else if (mContent != null && mContent == cameraPreviewfFragment) { switchContent(cameraPreviewfFragment, courseInfoFragment); mContent = courseInfoFragment; return; } ViewCompat.animate(mToolbarBack) .scaleX(0f) .scaleY(0f) .alpha(0f) .setDuration(100) .start(); ViewCompat.animate(mQuizFab) .scaleX(0f) .scaleY(0f) .setInterpolator(mInterpolator) .setStartDelay(100) .setListener(new ViewPropertyAnimatorListenerAdapter() { @SuppressLint("NewApi") @Override public void onAnimationEnd(View view) { if (isFinishing() || (ApiLevelHelper.isAtLeast(Build.VERSION_CODES.JELLY_BEAN_MR1) && isDestroyed())) { return; } QuizActivity.super.onBackPressed(); } }) .start(); }
public void hideAnimator(FloatingActionButton fab, ViewPropertyAnimatorListenerAdapter adapter) { ViewCompat.animate(fab).scaleX(0f).scaleY(0f).setDuration(200) .alpha(0f).setInterpolator(new DecelerateInterpolator(1.2f)) .setListener(adapter) .start(); }
@Override public void updateComicDetailsContent(ComicData comicData) { firstLetter = comicData.firstLetter; comicDetailsDescription.setText(comicData.description); mDescriptionDialog.setMessage(comicData.description); List<String> authors = new ArrayList<>(); for (ComicData.AuthorsBean author : comicData.authors) { authors.add(author.tagName); } authorTagGroup.setTags(authors); List<String> types = new ArrayList<>(); for (ComicData.TypesBean type : comicData.types) { types.add(type.tagName); } typeTagGroup.setTags(types); mAdapter.setDownloadedChapters(comicData.downloadedChapters); mAdapter.setReadHistory(comicData.readHistory); final List<ComicData.ChaptersBean.ChapterBean> chapters = comicData.chapters.get(0).data; ViewCompat.animate(loadingProgressBar) .alpha(0.0f) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { super.onAnimationEnd(view); loadingProgressBar.setVisibility(View.INVISIBLE); comicDetailsContent.setVisibility(View.VISIBLE); mAdapter.replaceAll(chapters); mBottomSheetDialogView = new DownloadBottomSheetDialogView(ComicDetailsActivity.this, ComicDetailsActivity.this.comicId, ComicDetailsActivity.this.comicTitle, ComicDetailsActivity.this.comicCover, ComicDetailsActivity.this.firstLetter, mAdapter.getData()); mBottomSheetDialogView.setOnBottomSheetDismissListener(ComicDetailsActivity.this); } }) .start(); }
@Override public void onBackPressed() { if (mIcon == null || mQuizFab == null) { // Skip the animation if icon or fab are not initialized. super.onBackPressed(); return; } ViewCompat.animate(mToolbarBack) .scaleX(0f) .scaleY(0f) .alpha(0f) .setDuration(100) .start(); // Scale the icon and fab to 0 size before calling onBackPressed if it exists. ViewCompat.animate(mIcon) .scaleX(.7f) .scaleY(.7f) .alpha(0f) .setInterpolator(mInterpolator) .start(); ViewCompat.animate(mQuizFab) .scaleX(0f) .scaleY(0f) .setInterpolator(mInterpolator) .setStartDelay(100) .setListener(new ViewPropertyAnimatorListenerAdapter() { @SuppressLint("NewApi") @Override public void onAnimationEnd(View view) { if (isFinishing() || (ApiLevelHelper.isAtLeast(Build.VERSION_CODES.JELLY_BEAN_MR1) && isDestroyed())) { return; } QuizActivity.super.onBackPressed(); } }) .start(); }