private Animator createHideItemAnimator(final View item) {
final float dx = centerItem.getX() - item.getX();
final float dy = centerItem.getY() - item.getY();
Animator anim = ObjectAnimator.ofPropertyValuesHolder(
item,
AnimatorUtils.scaleX(1f, 0f),
AnimatorUtils.scaleY(1f, 0f),
AnimatorUtils.translationX(0f, dx),
AnimatorUtils.translationY(0f, dy)
);
anim.setInterpolator(new DecelerateInterpolator());
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
item.setTranslationX(0f);
item.setTranslationY(0f);
}
});
anim.setDuration(50);
return anim;
}
java类android.animation.AnimatorListenerAdapter的实例源码
DemoLikeTumblrActivity.java 文件源码
项目:ArcLayout-master
阅读 41
收藏 0
点赞 0
评论 0
SearchView.java 文件源码
项目:android_ui
阅读 31
收藏 0
点赞 0
评论 0
/**
*/
@Override
void hideProgressBar(SearchView searchView) {
final CircularProgressBar progressBar = searchView.mProgressBar;
final ViewPropertyAnimator progressBarAnimator = progressBar.animate();
progressBarAnimator.setListener(null);
progressBarAnimator.cancel();
progressBarAnimator
.alpha(0.0f)
.setDuration(UiConfig.ANIMATION_DURATION_SHORT)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
progressBar.setVisibility(View.INVISIBLE);
}
})
.start();
final View icon = searchView.mButtonIcon;
final ViewPropertyAnimator iconAnimator = icon.animate();
iconAnimator.setListener(null);
iconAnimator.cancel();
icon.setVisibility(View.VISIBLE);
icon.setScaleX(0.5f);
icon.setScaleY(0.5f);
icon.setAlpha(0.0f);
iconAnimator
.scaleX(1.0f)
.scaleY(1.0f)
.alpha(1.0f)
.setDuration(UiConfig.ANIMATION_DURATION_SHORT)
.setInterpolator(iconInterpolator)
.setListener(null)
.start();
}
SmartRefreshLayout.java 文件源码
项目:SmartRefreshLayout
阅读 30
收藏 0
点赞 0
评论 0
@Override
public RefreshKernel startTwoLevel(boolean open) {
if (open) {
AnimatorListenerAdapter listener = new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
SmartRefreshLayout.this.notifyStateChanged(RefreshState.TwoLevel);
}
};
ValueAnimator animator = SmartRefreshLayout.this.animSpinner(SmartRefreshLayout.this.getMeasuredHeight());
if (animator != null && animator == SmartRefreshLayout.this.reboundAnimator) {
animator.setDuration(SmartRefreshLayout.this.mFloorDuration);
animator.addListener(listener);
} else {
listener.onAnimationEnd(null);
}
} else {
if (animSpinner(0) == null) {
SmartRefreshLayout.this.notifyStateChanged(RefreshState.None);
}
}
return this;
}
FunGameHeader.java 文件源码
项目:SmartRefresh
阅读 25
收藏 0
点赞 0
评论 0
private void doStart(long delay) {
ObjectAnimator topMaskAnimator = ObjectAnimator.ofFloat(topMaskView, "translationY", topMaskView.getTranslationY(), -halfHitBlockHeight);
ObjectAnimator bottomMaskAnimator = ObjectAnimator.ofFloat(bottomMaskView, "translationY", bottomMaskView.getTranslationY(), halfHitBlockHeight);
ObjectAnimator maskShadowAnimator = ObjectAnimator.ofFloat(maskReLayout, "alpha", maskReLayout.getAlpha(), 0);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(topMaskAnimator).with(bottomMaskAnimator).with(maskShadowAnimator);
animatorSet.setDuration(800);
animatorSet.setStartDelay(delay);
animatorSet.start();
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
topMaskView.setVisibility(View.GONE);
bottomMaskView.setVisibility(View.GONE);
maskReLayout.setVisibility(View.GONE);
onGameStart();
}
});
}
ReadEPubActivity.java 文件源码
项目:GitHub
阅读 42
收藏 0
点赞 0
评论 0
private void toolbarAnimateHide() {
if (mIsActionBarVisible) {
mCommonToolbar.animate()
.translationY(-mCommonToolbar.getHeight())
.setInterpolator(new LinearInterpolator())
.setDuration(180)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
toolbarSetElevation(0);
hideStatusBar();
if (mTocListPopupWindow != null && mTocListPopupWindow.isShowing()) {
mTocListPopupWindow.dismiss();
}
}
});
mIsActionBarVisible = false;
}
}
DragDropTouchListener.java 文件源码
项目:GitHub
阅读 25
收藏 0
点赞 0
评论 0
private void reset() {
//Animate mobile view back to original position
final View view = getViewByPosition(mobileViewCurrentPos);
if (view != null && mobileView != null) {
float y = getViewRawCoords(view)[1];
mobileView.animate().y(y).setDuration(MOVE_DURATION).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view.setVisibility(View.VISIBLE);
if (mobileView != null) {
ViewGroup parent = (ViewGroup) mobileView.getParent();
parent.removeView(mobileView);
mobileView = null;
}
}
});
}
dragging = false;
mobileViewStartY = -1;
mobileViewCurrentPos = -1;
}
PullLoadMoreRecyclerView.java 文件源码
项目:JKApp
阅读 49
收藏 0
点赞 0
评论 0
public void loadMore() {
if (mPullLoadMoreListener != null && hasMore) {
mFooterView.animate()
.translationY(0)
.setDuration(300)
.setInterpolator(new AccelerateDecelerateInterpolator())
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
mprogressBar.setVisibility(View.VISIBLE);
loadMoreText.setText(mContext.getString(R.string.load_more_text));
mFooterView.setVisibility(View.VISIBLE);
}
})
.start();
invalidate();
mPullLoadMoreListener.onLoadMore();
}
}
RevealActivity.java 文件源码
项目:AndroidOpen
阅读 28
收藏 0
点赞 0
评论 0
private void animateRevealHide(final View viewRoot) {
int cx = (viewRoot.getLeft() + viewRoot.getRight()) / 2;
int cy = (viewRoot.getTop() + viewRoot.getBottom()) / 2;
int initialRadius = viewRoot.getWidth();
Animator anim = ViewAnimationUtils.createCircularReveal(viewRoot, cx, cy, initialRadius, 0);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
viewRoot.setVisibility(View.INVISIBLE);
}
});
anim.setDuration(getResources().getInteger(R.integer.anim_duration_medium));
anim.start();
}
ShareView.java 文件源码
项目:Phial
阅读 32
收藏 0
点赞 0
评论 0
private void showSharePicker() {
final boolean hasSubView = presentView != null;
if (hasSubView) {
final View focusedChild = ShareView.this.getFocusedChild();
UiUtils.hideKeyBoard(focusedChild);
final Animator appearAnimator = animatorFactory.createDisappearAnimator(presentView);
appearAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
removeSubViews();
sharePickerView.setVisibility(VISIBLE);
}
});
appearAnimator.start();
}
shareContext = null;
}
AuthRefreshRecyclerFragment.java 文件源码
项目:GitHub
阅读 24
收藏 0
点赞 0
评论 0
@Override public void showContent() {
if (adapter.getItemCount() == 0) {
if (isRestoringViewState()) {
emptyView.setVisibility(View.VISIBLE);
} else {
ObjectAnimator anim = ObjectAnimator.ofFloat(emptyView, "alpha", 0f, 1f).setDuration(300);
anim.setStartDelay(250);
anim.addListener(new AnimatorListenerAdapter() {
@Override public void onAnimationStart(Animator animation) {
emptyView.setVisibility(View.VISIBLE);
}
});
anim.start();
}
} else {
emptyView.setVisibility(View.GONE);
}
super.showContent();
}
PagedView.java 文件源码
项目:FlickLauncher
阅读 45
收藏 0
点赞 0
评论 0
private void animateDragViewToOriginalPosition() {
if (mDragView != null) {
Animator anim = new LauncherViewPropertyAnimator(mDragView)
.translationX(0)
.translationY(0)
.scaleX(1)
.scaleY(1)
.setDuration(REORDERING_DROP_REPOSITION_DURATION);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
onPostReorderingAnimationCompleted();
}
});
anim.start();
}
}
SecondActivity.java 文件源码
项目:CircularRevealCompat
阅读 33
收藏 0
点赞 0
评论 0
private void unRevealActivity(final View revealView, int endCenterX, int endCenterY) {
int startCenterX = revealView.getWidth() / 2;
int startCenterY = revealView.getHeight() / 2;
float startRadius = Math.max(revealView.getWidth(), revealView.getHeight()) * 1.1f;
float finalRadius = 0;
Animator circularReveal = ViewAnimationCompatUtils.createCircularReveal(revealView, startCenterX, startCenterY, startRadius, endCenterX, endCenterY, finalRadius);
circularReveal.setDuration(500);
circularReveal.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
revealView.setVisibility(View.INVISIBLE);
finish();
}
});
circularReveal.start();
}
HoldingDrawable.java 文件源码
项目:HoldingButton
阅读 44
收藏 0
点赞 0
评论 0
private ValueAnimator createExpandValueAnimator() {
ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
animator.setDuration(DEFAULT_ANIMATION_DURATION_EXPAND);
animator.setInterpolator(new AccelerateInterpolator());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
mExpandedScaleFactor[0] = (float) valueAnimator.getAnimatedValue();
invalidateSelf();
}
});
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
notifyExpanded();
}
});
return animator;
}
PagedView.java 文件源码
项目:LaunchEnr
阅读 30
收藏 0
点赞 0
评论 0
private void animateDragViewToOriginalPosition() {
if (mDragView != null) {
Animator anim = LauncherAnimUtils.ofPropertyValuesHolder(mDragView,
new PropertyListBuilder()
.scale(1)
.translationX(0)
.translationY(0)
.build())
.setDuration(REORDERING_DROP_REPOSITION_DURATION);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
onPostReorderingAnimationCompleted();
}
});
anim.start();
}
}
SwipeHelper.java 文件源码
项目:LaunchEnr
阅读 32
收藏 0
点赞 0
评论 0
private void snapChild(final View animView, final float targetLeft, float velocity) {
final boolean canBeDismissed = mCallback.canChildBeDismissed(animView);
AnimatorUpdateListener updateListener = new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
onTranslationUpdate(animView, (float) animation.getAnimatedValue(), canBeDismissed);
}
};
Animator anim = getViewTranslationAnimator(animView, targetLeft, updateListener);
if (anim == null) {
return;
}
int duration = SNAP_ANIM_LEN;
anim.setDuration(duration);
anim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animator) {
mSnappingChild = false;
updateSwipeProgressFromOffset(animView, canBeDismissed);
mCallback.onChildSnappedBack(animView, targetLeft);
}
});
prepareSnapBackAnimation(animView, anim);
mSnappingChild = true;
anim.start();
}
TranslationHideAnimator.java 文件源码
项目:AndroidSkinAnimator
阅读 33
收藏 0
点赞 0
评论 0
@Override
public SkinAnimator apply(@NonNull final View view, @Nullable final Action action) {
animator = ObjectAnimator.ofPropertyValuesHolder(view,
PropertyValuesHolder.ofFloat("alpha", 1, 0),
PropertyValuesHolder.ofFloat("translationX", view.getLeft(), view.getRight()));
animator.setDuration(3 * PRE_DURATION);
animator.setInterpolator(new AnticipateInterpolator());
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
resetView(view);
if (action != null) {
action.action();
}
}
});
return this;
}
WidgetsBottomSheet.java 文件源码
项目:LaunchEnr
阅读 26
收藏 0
点赞 0
评论 0
private void open(boolean animate) {
if (mIsOpen || mOpenCloseAnimator.isRunning()) {
return;
}
mIsOpen = true;
setLightNavBar(true);
if (animate) {
mOpenCloseAnimator.setValues(new PropertyListBuilder()
.translationY(mTranslationYOpen).build());
mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mVerticalPullDetector.finishedScrolling();
}
});
mOpenCloseAnimator.setInterpolator(mFastOutSlowInInterpolator);
mOpenCloseAnimator.start();
} else {
setTranslationY(mTranslationYOpen);
}
}
MainActivity.java 文件源码
项目:app_secompufscar
阅读 21
收藏 0
点赞 0
评论 0
private void fadeOut() {
contentView.setAlpha(0f);
contentView.setVisibility(View.VISIBLE);
contentView.animate()
.alpha(1f)
.setDuration(getResources().getInteger(
android.R.integer.config_longAnimTime))
.setListener(null);
loadingView.animate()
.alpha(0f)
.setDuration(getResources().getInteger(
android.R.integer.config_longAnimTime))
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
loadingView.setVisibility(View.GONE);
}
});
}
ShareCard.java 文件源码
项目:Bigbang
阅读 29
收藏 0
点赞 0
评论 0
public void hide() {
post(new Runnable() {
@Override
public void run() {
ObjectAnimator objectAnimator = ObjectAnimator.ofInt(ShareCard.this, "height", 0);
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
setVisibility(GONE);
if (mListener != null) {
mListener.onClick(ShareCard.this);
}
}
});
objectAnimator.setDuration(500);
objectAnimator.setInterpolator(new AnticipateInterpolator());
objectAnimator.setRepeatCount(0);
objectAnimator.start();
}
});
}
ToolbarPhone.java 文件源码
项目:chromium-for-android-56-debug-video
阅读 21
收藏 0
点赞 0
评论 0
private ObjectAnimator createExitTabSwitcherAnimation(
final boolean animateNormalToolbar) {
ObjectAnimator exitAnimation =
ObjectAnimator.ofFloat(this, mTabSwitcherModePercentProperty, 0.f);
exitAnimation.setDuration(animateNormalToolbar
? TAB_SWITCHER_MODE_EXIT_NORMAL_ANIMATION_DURATION_MS
: TAB_SWITCHER_MODE_EXIT_FADE_ANIMATION_DURATION_MS);
exitAnimation.setInterpolator(new LinearInterpolator());
exitAnimation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
updateViewsForTabSwitcherMode();
}
});
return exitAnimation;
}
PullToZoomScrollView.java 文件源码
项目:boohee_v5.6
阅读 28
收藏 0
点赞 0
评论 0
private void reset() {
if (this.mAnimator == null || !this.mAnimator.isRunning()) {
this.mAnimator = ObjectAnimator.ofInt(this, "t", new int[]{((int) (-this.distance)) /
4, 0});
this.mAnimator.setDuration(150);
this.mAnimator.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
PullToZoomScrollView.this.isPreparePull = false;
if (PullToZoomScrollView.this.distance / aj.hA > ((float)
PullToZoomScrollView.this.DEFAULT_PULL_HEIGHT)) {
if (PullToZoomScrollView.this.onPullToZoomListener != null) {
PullToZoomScrollView.this.onPullToZoomListener.onPull();
}
} else if (PullToZoomScrollView.this.onPullToZoomListener != null) {
PullToZoomScrollView.this.onPullToZoomListener.onCancelPull();
}
}
});
this.mAnimator.start();
}
}
RevealUtil.java 文件源码
项目:LiteReader
阅读 28
收藏 0
点赞 0
评论 0
/**
* Conceal the view from the given centerX and centerY.
*
* @param view the target view.
* @param duration animation duration.
* @param centerX the pivotX
* @param centerY the pivotY
* @param startRadius the radius of the end of the animation, which is generally the maximum of the view's height and width.
* @param endRadius the radius of the beginning of the animation, which is generally zero.
*/
private static void conceal(final View view, final int duration, final int centerX, final int centerY, final float startRadius, final float endRadius) {
versionCheck(new Runnable() {
@Override
public void run() {
Animator animator = ViewAnimationUtils.createCircularReveal(view, centerX, centerY, startRadius, endRadius);
animator.setDuration(duration);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view.setVisibility(View.GONE);
}
});
animator.start();
}
}, REVEAL_WARNING);
}
PhoneTabSwitcherLayout.java 文件源码
项目:ChromeLikeTabSwitcher
阅读 38
收藏 0
点赞 0
评论 0
/**
* Creates and returns an animation listener, which allows to zoom in the currently selected
* tab, when a peek animation has been ended.
*
* @param selectedItem
* The item, which corresponds to the currently selected tab, as an instance of the
* class {@link AbstractItem}. The item may not be null
* @param peekAnimation
* The peek animation as an instance of the class {@link PeekAnimation}. The peek
* animation may not be null
* @return The listener, which has been created, as an instance of the type {@link
* AnimatorListener}. The listener may not be null
*/
@NonNull
private AnimatorListener createZoomOutAnimationListener(
@NonNull final AbstractItem selectedItem, @NonNull final PeekAnimation peekAnimation) {
return new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(final Animator animation) {
super.onAnimationEnd(animation);
getModel().removeListener(PhoneTabSwitcherLayout.this);
getModel().hideSwitcher();
long totalDuration =
peekAnimation.getDuration() != -1 ? peekAnimation.getDuration() :
peekAnimationDuration;
long duration = totalDuration / 3;
Interpolator interpolator =
peekAnimation.getInterpolator() != null ? peekAnimation.getInterpolator() :
new AccelerateDecelerateInterpolator();
animateHideSwitcher(selectedItem, duration, interpolator, duration,
createZoomInAnimationListener(selectedItem));
}
};
}
ReadEPubActivity.java 文件源码
项目:BookReader-master
阅读 34
收藏 0
点赞 0
评论 0
private void toolbarAnimateHide() {
if (mIsActionBarVisible) {
mCommonToolbar.animate()
.translationY(-mCommonToolbar.getHeight())
.setInterpolator(new LinearInterpolator())
.setDuration(180)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
toolbarSetElevation(0);
hideStatusBar();
if (mTocListPopupWindow != null && mTocListPopupWindow.isShowing()) {
mTocListPopupWindow.dismiss();
}
}
});
mIsActionBarVisible = false;
}
}
SnakeViewMaker.java 文件源码
项目:SnakeViewMaker
阅读 28
收藏 0
点赞 0
评论 0
private void releaseView() {
final Interpolator interpolator = new OvershootInterpolator();
final int duration = 700;
for (int i = 0; i < mChildCount; i++) {
final View child_i = mChildren.get(i);
final int delay = mDragDelay * (mChildCount - 1 - i);
child_i.postDelayed(new Runnable() {
@Override
public void run() {
child_i.animate()
.translationX(mTargetLocation[0])
.translationY(mTargetLocation[1])
.setDuration(duration)
.setInterpolator(interpolator)
.start();
}
}, delay);
}
mChildren.get(0).animate().setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
// when all animators finish, release the shield view
mShieldView.setVisibility(View.GONE);
}
});
}
HomeActivity.java 文件源码
项目:pokequest
阅读 43
收藏 0
点赞 0
评论 0
@UiThread
private void onLoadPokemonFinish() {
mBtnPokeDict.setEnabled(true);
mBtnPokeQuiz.setEnabled(true);
mTvIntro.postDelayed(() -> mTvIntro.animate()
.scaleX(1.f)
.scaleY(1.f)
.alpha(1.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mBtnPokeDict.animate()
.alpha(1.0f)
.setDuration(1000)
.start();
mBtnPokeQuiz.animate()
.alpha(1.0f)
.setDuration(1000)
.start();
}
}).start(), 500);
}
PhoneTabSwitcherLayout.java 文件源码
项目:NeoTerm
阅读 46
收藏 0
点赞 0
评论 0
/**
* Creates and returns an animation listener, which allows to zoom in the currently selected
* tab, when a peek animation has been ended.
*
* @param selectedTabItem
* The tab item, which corresponds to the currently selected tab, as an instance of the
* class {@link TabItem}. The tab item may not be null
* @param peekAnimation
* The peek animation as an instance of the class {@link PeekAnimation}. The peek
* animation may not be null
* @return The listener, which has been created, as an instance of the type {@link
* AnimatorListener}. The listener may not be null
*/
@NonNull
private AnimatorListener createZoomOutAnimationListener(@NonNull final TabItem selectedTabItem,
@NonNull final PeekAnimation peekAnimation) {
return new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(final Animator animation) {
super.onAnimationEnd(animation);
getModel().removeListener(PhoneTabSwitcherLayout.this);
getModel().hideSwitcher();
long totalDuration =
peekAnimation.getDuration() != -1 ? peekAnimation.getDuration() :
peekAnimationDuration;
long duration = totalDuration / 3;
Interpolator interpolator =
peekAnimation.getInterpolator() != null ? peekAnimation.getInterpolator() :
new AccelerateDecelerateInterpolator();
animateHideSwitcher(selectedTabItem, duration, interpolator, duration,
createZoomInAnimationListener(selectedTabItem));
}
};
}
BagDrawable.java 文件源码
项目:ClassifyView
阅读 24
收藏 0
点赞 0
评论 0
public void startMergeAnimation() {
if(mCancelAnimator != null&&mCancelAnimator.isRunning()){
mCancelAnimator.cancel();
}
if(mStarAnimator == null) {
mStarAnimator = ObjectAnimator.ofInt(this, mOutlineProperty, 0);
mStarAnimator.setDuration(mAnimationDuration);
mStarAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
inMerge = true;
}
});
}else if(mStarAnimator.isRunning()){
mStarAnimator.cancel();
}
mStarAnimator.start();
}
DynamicGridView.java 文件源码
项目:TYT
阅读 31
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private ObjectAnimator createBaseWobble(final View v) {
if (!isPreLollipop())
v.setLayerType(LAYER_TYPE_SOFTWARE, null);
ObjectAnimator animator = new ObjectAnimator();
animator.setDuration(180);
animator.setRepeatMode(ValueAnimator.REVERSE);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setPropertyName("rotation");
animator.setTarget(v);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
v.setLayerType(LAYER_TYPE_NONE, null);
}
});
return animator;
}
InsertingCells.java 文件源码
项目:buildAPKsSamples
阅读 129
收藏 0
点赞 0
评论 0
public void addRow(View view) {
mButton.setEnabled(false);
mItemNum++;
ListItemObject obj = mValues[mItemNum % mValues.length];
final ListItemObject newObj = new ListItemObject(obj.getTitle(), obj.getImgResource(),
mCellHeight);
boolean shouldAnimateInNewImage = mListView.shouldAnimateInNewImage();
if (!shouldAnimateInNewImage) {
mListView.addRow(newObj);
return;
}
mListView.setEnabled(false);
ObjectAnimator animator = mRoundView.getScalingAnimator();
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationRepeat(Animator animation) {
mListView.addRow(newObj);
}
});
animator.start();
}