List of usage examples for android.support.v4.view ViewPropertyAnimatorListenerAdapter ViewPropertyAnimatorListenerAdapter
ViewPropertyAnimatorListenerAdapter
From source file:moe.yukinoneko.gcomic.module.details.ComicDetailsActivity.java
@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);/*ww w . j a v a 2 s. c o m*/ } 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(); }
From source file:com.google.samples.apps.topeka.view.quiz.QuizActivity.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void revealFragmentContainerLollipop(final View clickedView, final FrameLayout fragmentContainer, int themeAccentColor) { prepareCircularReveal(clickedView, fragmentContainer, themeAccentColor); ViewCompat.animate(clickedView).scaleX(0).scaleY(0).alpha(0).setInterpolator(mInterpolator) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override/*from w w w.ja v a 2s. com*/ 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(); }
From source file:com.freshdigitable.udonroad.TimelineAnimator.java
private void animateChangeImpl(Change change) { final View oldView = change.getOldView(); if (oldView != null) { final ViewHolder oldHolder = change.oldHolder; changeAnimations.add(oldHolder); final ViewPropertyAnimatorCompat oldAnim = ViewCompat.animate(oldView); oldAnim.setDuration(getChangeDuration()).translationX(change.deltaX()).translationY(change.deltaY()) .alpha(0).setListener(new ViewPropertyAnimatorListenerAdapter() { @Override/*from w w w .j a v a 2 s. com*/ public void onAnimationStart(View view) { dispatchChangeStarting(oldHolder, true); } @Override public void onAnimationEnd(View view) { oldAnim.setListener(null); ViewCompat.setTranslationX(view, 0); ViewCompat.setTranslationY(view, 0); ViewCompat.setAlpha(view, 1); dispatchChangeFinished(oldHolder, true); changeAnimations.remove(oldHolder); dispatchFinishedWhenDone(); } }).start(); } final View newView = change.getNewView(); if (newView != null) { final ViewHolder newHolder = change.newHolder; changeAnimations.add(newHolder); final ViewPropertyAnimatorCompat newAnim = ViewCompat.animate(newView); newAnim.setDuration(0).translationX(0).translationY(0).alpha(1) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationStart(View view) { dispatchChangeStarting(newHolder, false); } @Override public void onAnimationEnd(View view) { newAnim.setListener(null); ViewCompat.setTranslationX(view, 0); ViewCompat.setTranslationY(view, 0); ViewCompat.setAlpha(view, 1); dispatchChangeFinished(newHolder, false); changeAnimations.remove(newHolder); dispatchFinishedWhenDone(); } }).start(); } }
From source file:com.luseen.luseenbottomnavigation.BottomNavigation.behavior.BottomNavigationBehavior.java
private void ensureOrCancelAnimator(final CoordinatorLayout coordinatorLayout, final V child) { if (mOffsetValueAnimator == null) { mOffsetValueAnimator = ViewCompat.animate(child); mOffsetValueAnimator.setDuration( coordinatorLayout.getResources().getInteger(android.R.integer.config_shortAnimTime)); mOffsetValueAnimator.setInterpolator(INTERPOLATOR); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { mOffsetValueAnimator.setUpdateListener(new ViewPropertyAnimatorUpdateListener() { @Override/*from w w w . ja v a 2 s . c o m*/ public void onAnimationUpdate(View view) { if (null != fabDependentView) { fabDependentView.onDependentViewChanged(coordinatorLayout, child); } if (null != snackbarDependentView) { snackbarDependentView.onDependentViewChanged(coordinatorLayout, child); } } }); } else { updateDependentViewsRunnable.setViews(coordinatorLayout, child); mOffsetValueAnimator.setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationStart(View view) { handler.postDelayed(updateDependentViewsRunnable, 16); } @Override public void onAnimationEnd(View view) { handler.removeCallbacks(updateDependentViewsRunnable); } @Override public void onAnimationCancel(View view) { handler.removeCallbacks(updateDependentViewsRunnable); } }); } } else { mOffsetValueAnimator.cancel(); } }
From source file:com.waz.zclient.pages.main.profile.preferences.dialogs.AddPhoneNumberPreferenceDialogFragment.java
private void showError(final String error) { if (TextUtils.equals(errorView.getText(), error)) { return;//from w w w. ja v a 2 s . c om } final boolean animate = ViewCompat.isLaidOut(containerView); final boolean errorShown = !TextUtils.isEmpty(error); ViewCompat.animate(errorView).cancel(); if (errorShown) { errorView.setText(error); errorView.setVisibility(View.VISIBLE); if (animate) { if (MathUtils.floatEqual(ViewCompat.getAlpha(errorView), 1f)) { ViewCompat.setAlpha(errorView, 0f); } ViewCompat.animate(errorView).alpha(1f).setDuration(ANIMATION_DURATION) .setInterpolator(LINEAR_OUT_SLOW_IN_INTERPOLATOR) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationStart(View view) { view.setVisibility(View.VISIBLE); } }).start(); } } else { if (errorView.getVisibility() == View.VISIBLE) { if (animate) { ViewCompat.animate(errorView).alpha(0f).setDuration(ANIMATION_DURATION) .setInterpolator(FAST_OUT_LINEAR_IN_INTERPOLATOR) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { errorView.setText(error); view.setVisibility(View.INVISIBLE); updateEditTextBackground(countryEditText); updateEditTextBackground(phoneEditText); } }).start(); } else { errorView.setVisibility(View.INVISIBLE); } } } updateEditTextBackground(countryEditText); updateEditTextBackground(phoneEditText); }
From source file:ren.qinc.markdowneditors.base.BaseActivity.java
/** * ???ActionMode??//from w w w . ja va 2 s. co m * * @param activity * @param mode */ private void fixActionModeCallback(AppCompatActivity activity, ActionMode mode) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; if (!(mode instanceof StandaloneActionMode)) return; try { final Field mCallbackField = mode.getClass().getDeclaredField("mCallback"); mCallbackField.setAccessible(true); final Object mCallback = mCallbackField.get(mode); final Field mWrappedField = mCallback.getClass().getDeclaredField("mWrapped"); mWrappedField.setAccessible(true); final ActionMode.Callback mWrapped = (ActionMode.Callback) mWrappedField.get(mCallback); final Field mDelegateField = AppCompatActivity.class.getDeclaredField("mDelegate"); mDelegateField.setAccessible(true); final Object mDelegate = mDelegateField.get(activity); mCallbackField.set(mode, new ActionMode.Callback() { @Override public boolean onCreateActionMode(android.support.v7.view.ActionMode mode, Menu menu) { return mWrapped.onCreateActionMode(mode, menu); } @Override public boolean onPrepareActionMode(android.support.v7.view.ActionMode mode, Menu menu) { return mWrapped.onPrepareActionMode(mode, menu); } @Override public boolean onActionItemClicked(android.support.v7.view.ActionMode mode, MenuItem item) { return mWrapped.onActionItemClicked(mode, item); } @Override public void onDestroyActionMode(final android.support.v7.view.ActionMode mode) { Class mDelegateClass = mDelegate.getClass().getSuperclass(); Window mWindow = null; PopupWindow mActionModePopup = null; Runnable mShowActionModePopup = null; ActionBarContextView mActionModeView = null; AppCompatCallback mAppCompatCallback = null; ViewPropertyAnimatorCompat mFadeAnim = null; android.support.v7.view.ActionMode mActionMode = null; Field mFadeAnimField = null; Field mActionModeField = null; while (mDelegateClass != null) { try { if (TextUtils.equals("AppCompatDelegateImplV7", mDelegateClass.getSimpleName())) { Field mActionModePopupField = mDelegateClass.getDeclaredField("mActionModePopup"); mActionModePopupField.setAccessible(true); mActionModePopup = (PopupWindow) mActionModePopupField.get(mDelegate); Field mShowActionModePopupField = mDelegateClass .getDeclaredField("mShowActionModePopup"); mShowActionModePopupField.setAccessible(true); mShowActionModePopup = (Runnable) mShowActionModePopupField.get(mDelegate); Field mActionModeViewField = mDelegateClass.getDeclaredField("mActionModeView"); mActionModeViewField.setAccessible(true); mActionModeView = (ActionBarContextView) mActionModeViewField.get(mDelegate); mFadeAnimField = mDelegateClass.getDeclaredField("mFadeAnim"); mFadeAnimField.setAccessible(true); mFadeAnim = (ViewPropertyAnimatorCompat) mFadeAnimField.get(mDelegate); mActionModeField = mDelegateClass.getDeclaredField("mActionMode"); mActionModeField.setAccessible(true); mActionMode = (android.support.v7.view.ActionMode) mActionModeField.get(mDelegate); } else if (TextUtils.equals("AppCompatDelegateImplBase", mDelegateClass.getSimpleName())) { Field mAppCompatCallbackField = mDelegateClass .getDeclaredField("mAppCompatCallback"); mAppCompatCallbackField.setAccessible(true); mAppCompatCallback = (AppCompatCallback) mAppCompatCallbackField.get(mDelegate); Field mWindowField = mDelegateClass.getDeclaredField("mWindow"); mWindowField.setAccessible(true); mWindow = (Window) mWindowField.get(mDelegate); } mDelegateClass = mDelegateClass.getSuperclass(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } if (mActionModePopup != null) { mWindow.getDecorView().removeCallbacks(mShowActionModePopup); } if (mActionModeView != null) { if (mFadeAnim != null) { mFadeAnim.cancel(); } mFadeAnim = ViewCompat.animate(mActionModeView).alpha(0.0F); final PopupWindow mActionModePopupFinal = mActionModePopup; final ActionBarContextView mActionModeViewFinal = mActionModeView; final ViewPropertyAnimatorCompat mFadeAnimFinal = mFadeAnim; final AppCompatCallback mAppCompatCallbackFinal = mAppCompatCallback; final android.support.v7.view.ActionMode mActionModeFinal = mActionMode; final Field mFadeAnimFieldFinal = mFadeAnimField; final Field mActionModeFieldFinal = mActionModeField; mFadeAnim.setListener(new ViewPropertyAnimatorListenerAdapter() { public void onAnimationEnd(View view) { mActionModeViewFinal.setVisibility(View.GONE); if (mActionModePopupFinal != null) { mActionModePopupFinal.dismiss(); } else if (mActionModeViewFinal.getParent() instanceof View) { ViewCompat.requestApplyInsets((View) mActionModeViewFinal.getParent()); } mActionModeViewFinal.removeAllViews(); mFadeAnimFinal.setListener((ViewPropertyAnimatorListener) null); try { if (mFadeAnimFieldFinal != null) { mFadeAnimFieldFinal.set(mDelegate, null); } } catch (IllegalAccessException e) { e.printStackTrace(); } mWrapped.onDestroyActionMode(mode); if (mAppCompatCallbackFinal != null) { mAppCompatCallbackFinal.onSupportActionModeFinished(mActionModeFinal); } try { if (mActionModeFieldFinal != null) { mActionModeFieldFinal.set(mDelegate, null); } } catch (IllegalAccessException e) { e.printStackTrace(); } } }); } } }); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }
From source file:com.sinyuk.jianyimaterial.widgets.FloatingToolbar.java
private void hideDefaultImpl() { ViewCompat.animate(mFab).x(mFabOriginalX).y(mFabOriginalY).scaleX(1f).scaleY(1f) .setStartDelay(FAB_UNMORPH_DELAY).setDuration(FAB_UNMORPH_DURATION) .setInterpolator(new AccelerateInterpolator()) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override/*from ww w. j ava 2 s . co m*/ public void onAnimationStart(View view) { super.onAnimationStart(view); mFab.setVisibility(View.VISIBLE); ViewCompat.animate(mFab).setListener(null); } }); ViewCompat.animate(this).scaleX(0f).setDuration(CIRCULAR_UNREVEAL_DURATION) .setStartDelay(CIRCULAR_UNREVEAL_DELAY).setInterpolator(new AccelerateDecelerateInterpolator()) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { super.onAnimationEnd(view); setVisibility(View.INVISIBLE); ViewCompat.animate(FloatingToolbar.this).setListener(null); mMorphing = false; } }); }
From source file:im.ene.lab.attiq.ui.activities.SearchActivity.java
@OnClick({ R.id.scrim, R.id.searchback }) protected void dismiss() { // if we're showing search mRecyclerView, circular hide them if (mResultsContainer.getHeight() > 0) { ViewCompat.animate(mResultsContainer).alpha(0.f).setDuration(400L).setInterpolator(LINEAR_OUT_SLOW_INT) .start();/*from w w w . ja v a 2s. c o m*/ Animator closeResults = ViewAnimationUtils.createCircularReveal(mResultsContainer, mSearchIconCenterX, 0, (float) Math.hypot(mSearchIconCenterX, mResultsContainer.getHeight()), 0f); closeResults.setDuration(500L); closeResults.setInterpolator(LINEAR_OUT_SLOW_INT); closeResults.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mResultsContainer.setVisibility(View.INVISIBLE); } }); closeResults.start(); } // translate the icon to match position in the launching activity ViewCompat.animate(mSearchNavButtonContainer).translationX(mSearchBackDistanceX).alpha(0.f) .setDuration(600L).setInterpolator(LINEAR_OUT_SLOW_INT) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { ActivityCompat.finishAfterTransition(SearchActivity.this); } }).start(); // transform from back icon to search icon mSearchNavButton.setImageResource(R.drawable.ic_search_24dp_black); // clear the background else the touch ripple moves with the translation which looks bad mSearchNavButton.setBackground(null); // fade out the other search chrome ViewCompat.animate(mSearchView).alpha(0f).setStartDelay(0L).setDuration(120L) .setInterpolator(LINEAR_OUT_SLOW_INT).setListener(null).start(); ViewCompat.animate(mSearchBackground).alpha(0f).setStartDelay(300L).setDuration(160L) .setInterpolator(LINEAR_OUT_SLOW_INT).setListener(null).start(); if (ViewCompat.getZ(mSearchToolbar) != 0f) { ViewCompat.animate(mSearchToolbar).z(0f).setDuration(600L).setInterpolator(LINEAR_OUT_SLOW_INT).start(); } // fade out the mScrim ViewCompat.animate(mScrim).alpha(0f).setDuration(400L).setInterpolator(LINEAR_OUT_SLOW_INT) .setListener(null).start(); }
From source file:com.oginotihiro.snackbar.Snackbar.java
private void animateViewIn() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { ViewPropertyAnimatorCompat vpac = ViewCompat.animate(mView); if (mDirection == LEFT_RIGHT) { ViewCompat.setTranslationX(mView, -mView.getWidth()); vpac.translationX(0f);//from w w w . j a va 2 s.co m } else if (mDirection == TOP_BOTTOM) { ViewCompat.setTranslationY(mView, -mView.getHeight()); vpac.translationY(0f); } else if (mDirection == RIGHT_LEFT) { ViewCompat.setTranslationX(mView, mView.getWidth()); vpac.translationX(0f); } else if (mDirection == BOTTOM_TOP) { ViewCompat.setTranslationY(mView, mView.getHeight()); vpac.translationY(0f); } vpac.setInterpolator(new FastOutSlowInInterpolator()).setDuration(mAnimDuration) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationStart(View view) { mView.animateChildrenIn(mAnimDuration - mAnimFadeDuration, mAnimFadeDuration); } @Override public void onAnimationEnd(View view) { if (mCallback != null) { mCallback.onShow(Snackbar.this); } SnackbarManager.getInstance().onShown(mManagerCallback); } }).start(); } else { Animation anim = null; if (mDirection == LEFT_RIGHT) { anim = AnimationUtils.loadAnimation(mView.getContext(), R.anim.oginotihiro_snackbar_left_in); } else if (mDirection == TOP_BOTTOM) { anim = AnimationUtils.loadAnimation(mView.getContext(), R.anim.oginotihiro_snackbar_top_in); } else if (mDirection == RIGHT_LEFT) { anim = AnimationUtils.loadAnimation(mView.getContext(), R.anim.oginotihiro_snackbar_right_in); } else if (mDirection == BOTTOM_TOP) { anim = AnimationUtils.loadAnimation(mView.getContext(), R.anim.oginotihiro_snackbar_bottom_in); } if (anim == null) return; anim.setInterpolator(new FastOutSlowInInterpolator()); anim.setDuration(mAnimDuration); anim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (mCallback != null) { mCallback.onShow(Snackbar.this); } SnackbarManager.getInstance().onShown(mManagerCallback); } @Override public void onAnimationRepeat(Animation animation) { } }); mView.setAnimation(anim); } }
From source file:im.ene.lab.attiq.ui.activities.ItemDetailActivity.java
private void trySetupContentView() { mContentView.setVerticalScrollBarEnabled(false); mContentView.setHorizontalScrollBarEnabled(false); mContentView.getSettings().setJavaScriptEnabled(true); mContentView.setWebChromeClient(new WebChromeClient() { @Override// w ww .j a va2 s. co m public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); Log.d(TAG, "newProgress = [" + newProgress + "]"); } }); mContentView.addJavascriptInterface(this, "Attiq"); mContentView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; } else { return false; } } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); if (!mIsFirstTimeLoaded && mLoadingView != null) { mLoadingView.setAlpha(1.f); mLoadingView.setVisibility(View.VISIBLE); } } @Override public void onPageFinished(final WebView view, String url) { super.onPageFinished(view, url); if (PrefUtil.isMathJaxEnabled()) { view.evaluateJavascript("javascript:document.getElementById('content').innerHTML='" + doubleEscapeTeX(mArticle.getRenderedBody()) + "';", null); view.evaluateJavascript("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { view.loadUrl("javascript:(function () " + "{document.getElementsByTagName('body')[0].style.marginBottom = '0'})()"); } }); } mIsFirstTimeLoaded = true; if (mLoadingView != null) { ViewCompat.animate(mLoadingView).alpha(0.f).setDuration(300) .setListener(new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { if (mLoadingView != null) { mLoadingView.setVisibility(View.GONE); } } }).start(); } } }); mContentView.setFindListener(new WebView.FindListener() { @Override public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches, boolean isDoneCounting) { if (mMenuLayout != null) { mMenuLayout.closeDrawer(GravityCompat.END); } if (numberOfMatches > 0 && mMenuAnchor != null && mContentView != null) { // FIXME Doesn't work now, because WebView is staying inside ScrollView mContentView.loadUrl("javascript:scrollToElement(\"" + mMenuAnchor.text() + "\");"); } } }); }