Example usage for android.animation ObjectAnimator start

List of usage examples for android.animation ObjectAnimator start

Introduction

In this page you can find the example usage for android.animation ObjectAnimator start.

Prototype

@Override
    public void start() 

Source Link

Usage

From source file:com.borax12.materialdaterangepicker.time.TimePickerDialog.java

private void setCurrentItemShowing(int index, boolean animateCircle, boolean delayLabelAnimate,
        boolean announce) {
    if (tabHost.getCurrentTab() == 0) {
        mTimePicker.setCurrentItemShowing(index, animateCircle);

        TextView labelToAnimate;//from   w  ww  . j av  a 2 s . c o  m
        if (index == HOUR_INDEX) {
            int hours = mTimePicker.getHours();
            if (!mIs24HourMode) {
                hours = hours % 12;
            }
            mTimePicker.setContentDescription(mHourPickerDescription + ": " + hours);
            if (announce) {
                Utils.tryAccessibilityAnnounce(mTimePicker, mSelectHours);
            }
            labelToAnimate = mHourView;
        } else {
            int minutes = mTimePicker.getMinutes();
            mTimePicker.setContentDescription(mMinutePickerDescription + ": " + minutes);
            if (announce) {
                Utils.tryAccessibilityAnnounce(mTimePicker, mSelectMinutes);
            }
            labelToAnimate = mMinuteView;
        }

        int hourColor = (index == HOUR_INDEX) ? mSelectedColor : mUnselectedColor;
        int minuteColor = (index == MINUTE_INDEX) ? mSelectedColor : mUnselectedColor;
        mHourView.setTextColor(hourColor);
        mMinuteView.setTextColor(minuteColor);

        ObjectAnimator pulseAnimator = Utils.getPulseAnimator(labelToAnimate, 0.85f, 1.1f);
        if (delayLabelAnimate) {
            pulseAnimator.setStartDelay(PULSE_ANIMATOR_DELAY);
        }
        pulseAnimator.start();
    } else {
        mTimePickerEnd.setCurrentItemShowing(index, animateCircle);

        TextView labelToAnimate;
        if (index == HOUR_INDEX) {
            int hours = mTimePickerEnd.getHours();
            if (!mIs24HourMode) {
                hours = hours % 12;
            }
            mTimePickerEnd.setContentDescription(mHourPickerDescription + ": " + hours);
            if (announce) {
                Utils.tryAccessibilityAnnounce(mTimePickerEnd, mSelectHours);
            }
            labelToAnimate = mHourViewEnd;
        } else {
            int minutes = mTimePickerEnd.getMinutes();
            mTimePickerEnd.setContentDescription(mMinutePickerDescription + ": " + minutes);
            if (announce) {
                Utils.tryAccessibilityAnnounce(mTimePickerEnd, mSelectMinutes);
            }
            labelToAnimate = mMinuteViewEnd;
        }

        int hourColor = (index == HOUR_INDEX) ? mSelectedColor : mUnselectedColor;
        int minuteColor = (index == MINUTE_INDEX) ? mSelectedColor : mUnselectedColor;
        mHourViewEnd.setTextColor(hourColor);
        mMinuteViewEnd.setTextColor(minuteColor);

        ObjectAnimator pulseAnimator = Utils.getPulseAnimator(labelToAnimate, 0.85f, 1.1f);
        if (delayLabelAnimate) {
            pulseAnimator.setStartDelay(PULSE_ANIMATOR_DELAY);
        }
        pulseAnimator.start();
    }

}

From source file:com.example.reedme.date.DatePickerDialog.java

private void setCurrentView(final int viewIndex) {
    long millis = mCalendar.getTimeInMillis();

    switch (viewIndex) {
    case MONTH_AND_DAY_VIEW:
        ObjectAnimator pulseAnimator = Util.getPulseAnimator(mMonthAndDayView, 0.9f, 1.05f);
        if (mDelayAnimation) {
            pulseAnimator.setStartDelay(ANIMATION_DELAY);
            mDelayAnimation = false;//from   w  w w  . j a v a  2s  .  c o m
        }
        mDayPickerView.onDateChanged();
        if (mCurrentView != viewIndex) {
            mMonthAndDayView.setSelected(true);
            mYearView.setSelected(false);
            mAnimator.setDisplayedChild(MONTH_AND_DAY_VIEW);
            mCurrentView = viewIndex;
        }
        pulseAnimator.start();

        int flags = DateUtils.FORMAT_SHOW_DATE;
        String dayString = DateUtils.formatDateTime(getActivity(), millis, flags);
        mAnimator.setContentDescription(mDayPickerDescription + ": " + dayString);
        Util.tryAccessibilityAnnounce(mAnimator, mSelectDay);
        break;
    case YEAR_VIEW:
        pulseAnimator = Util.getPulseAnimator(mYearView, 0.85f, 1.1f);
        if (mDelayAnimation) {
            pulseAnimator.setStartDelay(ANIMATION_DELAY);
            mDelayAnimation = false;
        }
        mYearPickerView.onDateChanged();
        if (mCurrentView != viewIndex) {
            mMonthAndDayView.setSelected(false);
            mYearView.setSelected(true);
            mAnimator.setDisplayedChild(YEAR_VIEW);
            mCurrentView = viewIndex;
        }
        pulseAnimator.start();

        CharSequence yearString = YEAR_FORMAT.format(millis);
        mAnimator.setContentDescription(mYearPickerDescription + ": " + yearString);
        Util.tryAccessibilityAnnounce(mAnimator, mSelectYear);
        break;
    }
}

From source file:org.sufficientlysecure.keychain.ui.keyview.ViewKeyActivity.java

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    /* TODO better error handling? May cause problems when a key is deleted,
     * because the notification triggers faster than the activity closes.
     */// w w  w . ja v a2 s  .c  o  m

    // Swap the new cursor in. (The framework will take care of closing the
    // old cursor once we return.)
    switch (loader.getId()) {
    case LOADER_ID_UNIFIED: {
        // Avoid NullPointerExceptions...
        if (data.getCount() == 0) {
            return;
        }

        if (data.moveToFirst()) {
            // get name, email, and comment from USER_ID

            String name = data.getString(INDEX_NAME);

            mCollapsingToolbarLayout.setTitle(name != null ? name : getString(R.string.user_id_no_name));

            mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
            mFingerprint = data.getBlob(INDEX_FINGERPRINT);
            mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
            mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
            mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
            mIsExpired = data.getInt(INDEX_IS_EXPIRED) != 0;
            mIsSecure = data.getInt(INDEX_IS_SECURE) == 1;
            mIsVerified = data.getInt(INDEX_VERIFIED) > 0;

            // queue showing of the main fragment
            showMainFragment();

            // if the refresh animation isn't playing
            if (!mRotate.hasStarted() && !mRotateSpin.hasStarted()) {
                // re-create options menu based on mIsSecret, mIsVerified
                supportInvalidateOptionsMenu();
                // this is done at the end of the animation otherwise
            }

            AsyncTask<Long, Void, Bitmap> photoTask = new AsyncTask<Long, Void, Bitmap>() {
                protected Bitmap doInBackground(Long... mMasterKeyId) {
                    return new ContactHelper(ViewKeyActivity.this).loadPhotoByMasterKeyId(mMasterKeyId[0],
                            true);
                }

                protected void onPostExecute(Bitmap photo) {
                    if (photo == null) {
                        return;
                    }

                    mPhoto.setImageBitmap(photo);
                    mPhoto.setColorFilter(getResources().getColor(R.color.toolbar_photo_tint),
                            PorterDuff.Mode.SRC_ATOP);
                    mPhotoLayout.setVisibility(View.VISIBLE);
                }
            };

            boolean showStatusText = mIsSecure && !mIsExpired && !mIsRevoked;
            if (showStatusText) {
                mStatusText.setVisibility(View.VISIBLE);

                if (mIsSecret) {
                    mStatusText.setText(R.string.view_key_my_key);
                } else if (mIsVerified) {
                    mStatusText.setText(R.string.view_key_verified);
                } else {
                    mStatusText.setText(R.string.view_key_unverified);
                }
            } else {
                mStatusText.setVisibility(View.GONE);
            }

            // Note: order is important
            int color;
            if (mIsRevoked) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.REVOKED, R.color.icons,
                        true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (!mIsSecure) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.INSECURE,
                        R.color.icons, true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (mIsExpired) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.EXPIRED, R.color.icons,
                        true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (mIsSecret) {
                mStatusImage.setVisibility(View.GONE);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_green);
                // reload qr code only if the fingerprint changed
                if (!Arrays.equals(mFingerprint, mQrCodeLoaded)) {
                    loadQrCode(mFingerprint);
                }
                photoTask.execute(mMasterKeyId);
                mQrCodeLayout.setVisibility(View.VISIBLE);

                // and place leftOf qr code
                //                        RelativeLayout.LayoutParams nameParams = (RelativeLayout.LayoutParams)
                //                                mName.getLayoutParams();
                //                        // remove right margin
                //                        nameParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                //                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                //                            nameParams.setMarginEnd(0);
                //                        }
                //                        nameParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                //                        mName.setLayoutParams(nameParams);

                RelativeLayout.LayoutParams statusParams = (RelativeLayout.LayoutParams) mStatusText
                        .getLayoutParams();
                statusParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                    statusParams.setMarginEnd(0);
                }
                statusParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                mStatusText.setLayoutParams(statusParams);

                mActionEncryptFile.setVisibility(View.VISIBLE);
                mActionEncryptText.setVisibility(View.VISIBLE);

                showFab();
                // noinspection deprecation (no getDrawable with theme at current minApi level 15!)
                mFab.setImageDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
            } else {
                mActionEncryptFile.setVisibility(View.VISIBLE);
                mActionEncryptText.setVisibility(View.VISIBLE);
                mQrCodeLayout.setVisibility(View.GONE);

                if (mIsVerified) {
                    mStatusText.setText(R.string.view_key_verified);
                    mStatusImage.setVisibility(View.VISIBLE);
                    KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.VERIFIED,
                            R.color.icons, true);
                    // noinspection deprecation, fix requires api level 23
                    color = getResources().getColor(R.color.key_flag_green);
                    photoTask.execute(mMasterKeyId);

                    hideFab();
                } else {
                    mStatusText.setText(R.string.view_key_unverified);
                    mStatusImage.setVisibility(View.VISIBLE);
                    KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.UNVERIFIED,
                            R.color.icons, true);
                    // noinspection deprecation, fix requires api level 23
                    color = getResources().getColor(R.color.key_flag_orange);

                    showFab();
                }
            }

            if (mPreviousColor == 0 || mPreviousColor == color) {
                mAppBarLayout.setBackgroundColor(color);
                mCollapsingToolbarLayout.setContentScrimColor(color);
                mCollapsingToolbarLayout.setStatusBarScrimColor(getStatusBarBackgroundColor(color));
                mPreviousColor = color;
            } else {
                ObjectAnimator colorFade = ObjectAnimator.ofObject(mAppBarLayout, "backgroundColor",
                        new ArgbEvaluator(), mPreviousColor, color);
                mCollapsingToolbarLayout.setContentScrimColor(color);
                mCollapsingToolbarLayout.setStatusBarScrimColor(getStatusBarBackgroundColor(color));

                colorFade.setDuration(1200);
                colorFade.start();
                mPreviousColor = color;
            }

            //noinspection deprecation
            mStatusImage.setAlpha(80);

            break;
        }
    }
    }
}

From source file:com.klinker.android.sliding.MultiShrinkScroller.java

/**
 * Expand to maximum size./*from   ww  w  .  j  ava2  s  . c  om*/
 */
private void expandHeader() {
    if (getHeaderHeight() != maximumHeaderHeight) {
        final ObjectAnimator animator = ObjectAnimator.ofInt(this, "headerHeight", maximumHeaderHeight);
        animator.setDuration(ANIMATION_DURATION);
        animator.start();
        // Scroll nested scroll view to its top
        if (scrollView.getScrollY() != 0) {
            ObjectAnimator.ofInt(scrollView, "scrollY", -scrollView.getScrollY()).start();
        }
    }
}

From source file:com.xandy.calendar.AllInOneActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Time t = null;//from w w w . jav  a 2s  . c o  m
    int viewType = ViewType.CURRENT;
    long extras = CalendarController.EXTRA_GOTO_TIME;
    final int itemId = item.getItemId();
    if (itemId == R.id.action_refresh) {
        mController.refreshCalendars();
        return true;
    } else if (itemId == R.id.action_today) {
        viewType = ViewType.CURRENT;
        t = new Time(mTimeZone);
        t.setToNow();
        extras |= CalendarController.EXTRA_GOTO_TODAY;
    } else if (itemId == R.id.action_create_event) {
        t = new Time();
        t.set(mController.getTime());
        if (t.minute > 30) {
            t.hour++;
            t.minute = 0;
        } else if (t.minute > 0 && t.minute < 30) {
            t.minute = 30;
        }
        mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, t.toMillis(true), 0, 0, 0, -1);
        return true;
    } else if (itemId == R.id.action_select_visible_calendars) {
        mController.sendEvent(this, EventType.LAUNCH_SELECT_VISIBLE_CALENDARS, null, null, 0, 0);
        return true;
    } else if (itemId == R.id.action_settings) {
        mController.sendEvent(this, EventType.LAUNCH_SETTINGS, null, null, 0, 0);
        return true;
    } else if (itemId == R.id.action_hide_controls) {
        mHideControls = !mHideControls;
        Utils.setSharedPreference(this, GeneralPreferences.KEY_SHOW_CONTROLS, !mHideControls);
        item.setTitle(mHideControls ? mShowString : mHideString);
        if (!mHideControls) {
            mMiniMonth.setVisibility(View.VISIBLE);
            mCalendarsList.setVisibility(View.VISIBLE);
            mMiniMonthContainer.setVisibility(View.VISIBLE);
        }
        final ObjectAnimator slideAnimation = ObjectAnimator.ofInt(this, "controlsOffset",
                mHideControls ? 0 : mControlsAnimateWidth, mHideControls ? mControlsAnimateWidth : 0);
        slideAnimation.setDuration(mCalendarControlsAnimationTime);
        ObjectAnimator.setFrameDelay(0);
        slideAnimation.start();
        return true;
    } else if (itemId == R.id.action_search) {
        return false;
    } else {
        return mExtensions.handleItemSelected(item, this);
    }
    mController.sendEvent(this, EventType.GO_TO, t, null, t, -1, viewType, extras, null, null);
    return true;
}

From source file:com.gitstudy.rili.liarbry.CalendarLayout.java

/**
 * //  w ww  .ja  v a  2  s.  com
 *
 * @return ??
 */
public boolean expand() {
    if (isAnimating || mCalendarShowMode == CALENDAR_SHOW_MODE_ONLY_WEEK_VIEW || mContentView == null)
        return false;
    if (mMonthView.getVisibility() != VISIBLE) {
        mWeekPager.setVisibility(GONE);
        onShowMonthView();
        mMonthView.setVisibility(VISIBLE);
    }
    ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mContentView, "translationY",
            mContentView.getTranslationY(), 0f);
    objectAnimator.setDuration(240);
    objectAnimator.addUpdateListener(new AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float currentValue = (Float) animation.getAnimatedValue();
            float percent = currentValue * 1.0f / mContentViewTranslateY;
            mMonthView.setTranslationY(mViewPagerTranslateY * percent);
            isAnimating = true;
        }
    });
    objectAnimator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            isAnimating = false;
            hideWeek();

        }
    });
    objectAnimator.start();
    return true;
}

From source file:net.osmand.plus.views.controls.DynamicListView.java

/**
 * Resets all the appropriate fields to a default state while also animating
 * the hover cell back to its correct location.
 *///  ww  w  .  j a  v  a 2 s .c o m
private void touchEventsEnded() {
    final View mobileView = getViewForID(mMobileItemId);
    if (mCellIsMobile || mIsWaitingForScrollFinish) {
        mCellIsMobile = false;
        mIsWaitingForScrollFinish = false;
        mIsMobileScrolling = false;
        mActivePointerId = INVALID_POINTER_ID;

        // If the autoscroller has not completed scrolling, we need to wait for it to
        // finish in order to determine the final location of where the hover cell
        // should be animated to.
        if (mScrollState != OnScrollListener.SCROLL_STATE_IDLE) {
            mIsWaitingForScrollFinish = true;
            return;
        }

        mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mobileView.getTop());

        if (android.os.Build.VERSION.SDK_INT < 12) {
            finishTouch();
        } else {
            /**
             * This TypeEvaluator is used to animate the BitmapDrawable back to its
             * final location when the user lifts his finger by modifying the
             * BitmapDrawable's bounds.
             */
            TypeEvaluator<Rect> sBoundEvaluator = new TypeEvaluator<Rect>() {
                public Rect evaluate(float fraction, Rect startValue, Rect endValue) {
                    return new Rect(interpolate(startValue.left, endValue.left, fraction),
                            interpolate(startValue.top, endValue.top, fraction),
                            interpolate(startValue.right, endValue.right, fraction),
                            interpolate(startValue.bottom, endValue.bottom, fraction));
                }

                public int interpolate(int start, int end, float fraction) {
                    return (int) (start + fraction * (end - start));
                }
            };

            ObjectAnimator hoverViewAnimator = ObjectAnimator.ofObject(mHoverCell, "bounds", sBoundEvaluator,
                    mHoverCellCurrentBounds);
            hoverViewAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    invalidate();
                }
            });
            hoverViewAnimator.addListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationStart(Animator animation) {
                    setEnabled(false);
                }

                @Override
                public void onAnimationEnd(Animator animation) {
                    finishTouch();
                }
            });
            hoverViewAnimator.start();
        }
    } else {
        touchEventsCancelled();
    }
}

From source file:com.gitstudy.rili.liarbry.CalendarLayout.java

/**
 * //ww  w .  jav a 2  s . com
 *
 * @return ?
 */
public boolean shrink() {
    if (isAnimating || mContentView == null) {
        return false;
    }
    ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mContentView, "translationY",
            mContentView.getTranslationY(), -mContentViewTranslateY);
    objectAnimator.setDuration(240);
    objectAnimator.addUpdateListener(new AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float currentValue = (Float) animation.getAnimatedValue();
            float percent = currentValue * 1.0f / mContentViewTranslateY;
            mMonthView.setTranslationY(mViewPagerTranslateY * percent);
            isAnimating = true;
        }
    });
    objectAnimator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            isAnimating = false;
            showWeek();

        }
    });
    objectAnimator.start();
    return true;
}

From source file:com.dgnt.dominionCardPicker.view.DynamicListView.java

/**
 * Resets all the appropriate fields to a default state while also animating
 * the hover cell back to its correct location.
 *//*from  w w  w  .  ja  v  a 2s.c  o  m*/
private void touchEventsEnded() {
    final View mobileView = getViewForID(mMobileItemId);
    if (mCellIsMobile || mIsWaitingForScrollFinish) {
        mCellIsMobile = false;
        mIsWaitingForScrollFinish = false;
        mIsMobileScrolling = false;
        mActivePointerId = INVALID_POINTER_ID;

        // If the autoscroller has not completed scrolling, we need to wait for it to
        // finish in order to determine the final location of where the hover cell
        // should be animated to.
        if (mScrollState != OnScrollListener.SCROLL_STATE_IDLE) {
            mIsWaitingForScrollFinish = true;
            return;
        }

        mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mobileView.getTop());

        ObjectAnimator hoverViewAnimator = ObjectAnimator.ofObject(mHoverCell, "bounds", sBoundEvaluator,
                mHoverCellCurrentBounds);
        hoverViewAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                invalidate();
            }
        });
        hoverViewAnimator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationStart(Animator animation) {
                setEnabled(false);
            }

            @Override
            public void onAnimationEnd(Animator animation) {
                mAboveItemId = INVALID_ID;
                mMobileItemId = INVALID_ID;
                mBelowItemId = INVALID_ID;
                mobileView.setVisibility(VISIBLE);
                mHoverCell = null;
                setEnabled(true);
                invalidate();
            }
        });
        hoverViewAnimator.start();

    } else {
        touchEventsCancelled();
    }
}

From source file:com.example.piechart3d.PieChart3DView.java

@Override
protected void onAttachedToWindow() {
    // TODO Auto-generated method stub
    super.onAttachedToWindow();

    ObjectAnimator mXAnimator = ObjectAnimator.ofFloat(mRenderer, "angle_x", 0, maxX);
    mXAnimator.setDuration(2000);//from w  ww.  j  a  va 2 s .  c om

    mXAnimator.addListener(new AnimatorListener() {

        @Override
        public void onAnimationCancel(final Animator animation) {
        }

        @Override
        public void onAnimationEnd(final Animator animation) {
            // progressBar.setProgress(progress);
        }

        @Override
        public void onAnimationRepeat(final Animator animation) {
        }

        @Override
        public void onAnimationStart(final Animator animation) {
        }
    });
    mXAnimator.addUpdateListener(new AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(final ValueAnimator animation) {

        }
    });
    LinearInterpolator di = new LinearInterpolator();
    mXAnimator.setInterpolator(di);
    mXAnimator.start();
}