android.animation.ValueAnimator#ofPropertyValuesHolder ( )源码实例Demo

下面列出了android.animation.ValueAnimator#ofPropertyValuesHolder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: DragState.java
private ValueAnimator createCancelAnimationLocked() {
    final ValueAnimator animator = ValueAnimator.ofPropertyValuesHolder(
            PropertyValuesHolder.ofFloat(
                    ANIMATED_PROPERTY_X, mCurrentX - mThumbOffsetX, mCurrentX),
            PropertyValuesHolder.ofFloat(
                    ANIMATED_PROPERTY_Y, mCurrentY - mThumbOffsetY, mCurrentY),
            PropertyValuesHolder.ofFloat(ANIMATED_PROPERTY_SCALE, 1, 0),
            PropertyValuesHolder.ofFloat(ANIMATED_PROPERTY_ALPHA, mOriginalAlpha, 0));
    final AnimationListener listener = new AnimationListener();
    animator.setDuration(MIN_ANIMATION_DURATION_MS);
    animator.setInterpolator(mCubicEaseOutInterpolator);
    animator.addListener(listener);
    animator.addUpdateListener(listener);

    mService.mAnimationHandler.post(() -> animator.start());
    return animator;
}
 
源代码2 项目: TheGlowingLoader   文件: RippleAnimator.java
public void startCircleMajor(final Callback callback) {
    PropertyValuesHolder rp = PropertyValuesHolder.ofFloat("radius", 0, circleMaxRadius);
    PropertyValuesHolder ap = PropertyValuesHolder.ofFloat("alpha", 1, 0);
    PropertyValuesHolder sp = PropertyValuesHolder.ofInt("stroke", (int) (circleMaxRadius * .15f), 0);

    ValueAnimator va = ValueAnimator.ofPropertyValuesHolder(rp, ap, sp);
    va.setInterpolator(new AccelerateInterpolator(.4f));
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            circleRadius = (float) animation.getAnimatedValue("radius");
            circleAlpha = (float) animation.getAnimatedValue("alpha");
            circleStroke = (int) animation.getAnimatedValue("stroke");
            callback.onValueUpdated();
        }
    });
    va.setDuration(450);
    va.start();
}
 
源代码3 项目: TheGlowingLoader   文件: RippleAnimator.java
public void startCircleMinor(final Callback callback) {
    PropertyValuesHolder rp2 = PropertyValuesHolder.ofFloat("radius", 0, circleMaxRadius * .60f);
    PropertyValuesHolder ap2 = PropertyValuesHolder.ofFloat("alpha", 1, 0);
    PropertyValuesHolder sp2 = PropertyValuesHolder.ofInt("stroke", (int) (circleMaxRadius * .06f), 0);

    ValueAnimator va2 = ValueAnimator.ofPropertyValuesHolder(rp2, ap2, sp2);
    va2.setInterpolator(new AccelerateInterpolator(.4f));
    va2.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            circleRadius2 = (float) animation.getAnimatedValue("radius");
            circleAlpha2 = (float) animation.getAnimatedValue("alpha");
            circleStroke2 = (int) animation.getAnimatedValue("stroke");
            callback.onValueUpdated();
        }
    });
    va2.setDuration(380);
    va2.start();
}
 
源代码4 项目: customview-samples   文件: CircleAnimView.java
public void startAnim(){
    if(mValueAnimator!=null&&mValueAnimator.isRunning()){
        return;
    }
    Keyframe k1 = Keyframe.ofFloat(0,mMinSize/2);
    Keyframe k2 = Keyframe.ofFloat(0.5f,mMinSize/4);
    Keyframe k3 = Keyframe.ofFloat(1,mMinSize/2);
    PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofKeyframe("scale",k1,k2,k3);
    mValueAnimator = ValueAnimator.ofPropertyValuesHolder(propertyValuesHolder);
    mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            mRadius = (float) animation.getAnimatedValue();
            invalidate();
        }
    });
    mValueAnimator.setRepeatCount(ValueAnimator.INFINITE);
    mValueAnimator.setDuration(2000);
    mValueAnimator.start();
}
 
源代码5 项目: PinchToZoom   文件: ImageMatrixTouchHandler.java
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
	if (mode == DRAG) {
		if (flingDuration > 0 && !isAnimating()) {
			float factor = ((float) flingDuration / 1000f) * flingExaggeration;
			float[] values = corrector.getValues();
			float dx = (velocityX * factor) * values[Matrix.MSCALE_X];
			float dy = (velocityY * factor) * values[Matrix.MSCALE_Y];
			PropertyValuesHolder flingX = PropertyValuesHolder.ofFloat(FlingAnimatorHandler.PROPERTY_TRANSLATE_X, values[Matrix.MTRANS_X], values[Matrix.MTRANS_X] + dx);
			PropertyValuesHolder flingY = PropertyValuesHolder.ofFloat(FlingAnimatorHandler.PROPERTY_TRANSLATE_Y, values[Matrix.MTRANS_Y], values[Matrix.MTRANS_Y] + dy);
			valueAnimator = ValueAnimator.ofPropertyValuesHolder(flingX, flingY);
			valueAnimator.setDuration(flingDuration);
			valueAnimator.addUpdateListener(new FlingAnimatorHandler(corrector));
			valueAnimator.setInterpolator(new DecelerateInterpolator());
			valueAnimator.start();
			return true;
		}
	}
	return super.onFling(e1, e2, velocityX, velocityY);
}
 
源代码6 项目: crystal-preloaders   文件: BallScale.java
@Override
protected List<ValueAnimator> setupAnimation() {
    PropertyValuesHolder radiusValueHolder = PropertyValuesHolder.ofInt("radius", 0, Math.min(getWidth() / 2, getHeight() / 2));
    PropertyValuesHolder opacityValueHolder = PropertyValuesHolder.ofInt("opacity", 200, 0);

    valueAnimator = ValueAnimator.ofPropertyValuesHolder(radiusValueHolder, opacityValueHolder);
    valueAnimator.setDuration(1000);
    valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
    valueAnimator.setRepeatMode(ValueAnimator.RESTART);
    valueAnimator.setInterpolator(new LinearInterpolator());
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            radius  = (int) animation.getAnimatedValue("radius");
            opacity = (int) animation.getAnimatedValue("opacity");
            getTarget().invalidate();
        }
    });

    // create animator list
    final List<ValueAnimator> animators = new ArrayList<>();
    animators.add(valueAnimator);

    return animators;
}
 
源代码7 项目: crystal-preloaders   文件: BallSpinFade.java
private void setAnimator(final int index){

        valueAnimators[index] = ValueAnimator.ofPropertyValuesHolder(radiusValueHolder, opacityValueHolder);
        valueAnimators[index].setStartDelay(index * DELAY);
        valueAnimators[index].setDuration(1000);
        valueAnimators[index].setRepeatCount(ValueAnimator.INFINITE);
        valueAnimators[index].setRepeatMode(ValueAnimator.REVERSE);
        valueAnimators[index].setInterpolator(new AccelerateInterpolator());
        valueAnimators[index].addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                circleRadius[index]  = (int) animation.getAnimatedValue("radius");
                circleOpacity[index] = (int) animation.getAnimatedValue("opacity");
                if(index == 0 || index == valueAnimators.length){
                    getTarget().invalidate();
                }
            }
        });
    }
 
源代码8 项目: MiClockView   文件: ClockView.java
private void startNewSteadyAnim() {
	final String propertyNameRotateX = "canvasRotateX";
	final String propertyNameRotateY = "canvasRotateY";

	PropertyValuesHolder holderRotateX = PropertyValuesHolder.ofFloat(propertyNameRotateX, canvasRotateX, 0);
	PropertyValuesHolder holderRotateY = PropertyValuesHolder.ofFloat(propertyNameRotateY, canvasRotateY, 0);
	steadyAnim = ValueAnimator.ofPropertyValuesHolder(holderRotateX, holderRotateY);
	steadyAnim.setDuration(1000);
	steadyAnim.setInterpolator(new BounceInterpolator());
	steadyAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
		@Override
		public void onAnimationUpdate(ValueAnimator animation) {
			canvasRotateX = (float) animation.getAnimatedValue(propertyNameRotateX);
			canvasRotateY = (float) animation.getAnimatedValue(propertyNameRotateY);
		}
	});
	steadyAnim.start();
}
 
源代码9 项目: android_9.0.0_r45   文件: DragState.java
private ValueAnimator createReturnAnimationLocked() {
    final ValueAnimator animator = ValueAnimator.ofPropertyValuesHolder(
            PropertyValuesHolder.ofFloat(
                    ANIMATED_PROPERTY_X, mCurrentX - mThumbOffsetX,
                    mOriginalX - mThumbOffsetX),
            PropertyValuesHolder.ofFloat(
                    ANIMATED_PROPERTY_Y, mCurrentY - mThumbOffsetY,
                    mOriginalY - mThumbOffsetY),
            PropertyValuesHolder.ofFloat(ANIMATED_PROPERTY_SCALE, 1, 1),
            PropertyValuesHolder.ofFloat(
                    ANIMATED_PROPERTY_ALPHA, mOriginalAlpha, mOriginalAlpha / 2));

    final float translateX = mOriginalX - mCurrentX;
    final float translateY = mOriginalY - mCurrentY;
    // Adjust the duration to the travel distance.
    final double travelDistance = Math.sqrt(translateX * translateX + translateY * translateY);
    final double displayDiagonal =
            Math.sqrt(mDisplaySize.x * mDisplaySize.x + mDisplaySize.y * mDisplaySize.y);
    final long duration = MIN_ANIMATION_DURATION_MS + (long) (travelDistance / displayDiagonal
            * (MAX_ANIMATION_DURATION_MS - MIN_ANIMATION_DURATION_MS));
    final AnimationListener listener = new AnimationListener();
    animator.setDuration(duration);
    animator.setInterpolator(mCubicEaseOutInterpolator);
    animator.addListener(listener);
    animator.addUpdateListener(listener);

    mService.mAnimationHandler.post(() -> animator.start());
    return animator;
}
 
源代码10 项目: OTTLivePlayer_vlc   文件: RotaProgressBar.java
private void init() {
    pvh = PropertyValuesHolder.ofFloat("sweepAngle", 0, 360.0f);
    valueAnimator = ValueAnimator.ofPropertyValuesHolder(pvh);
    valueAnimator.setInterpolator(interpolator);
    valueAnimator.setDuration(1500);
    valueAnimator.setRepeatCount(Integer.MAX_VALUE);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            invalidate();
        }
    });
}
 
源代码11 项目: MiBandDecompiled   文件: AnimUtil.java
public static Animator animNumSwitch(int i1, int j1, TextView textview)
{
    int k1 = j1 - i1;
    String s = String.valueOf(Math.abs(k1));
    int ai[] = new int[s.length()];
    for (int l1 = 0; l1 < s.length(); l1++)
    {
        ai[l1] = -48 + s.charAt(-1 + (s.length() - l1));
    }

    ArrayList arraylist = new ArrayList();
    arraylist.add(formatNumStyle(i1));
    int i2 = 0;
    int j2 = 1;
    do
    {
        if (i2 >= ai.length)
        {
            break;
        }
        int i3 = Integer.valueOf(ai[i2]).intValue();
        int j3 = 0;
        while (j3 < i3) 
        {
            if (k1 > 0)
            {
                i1 += j2;
            } else
            if (k1 < 0)
            {
                i1 -= j2;
            }
            arraylist.add(formatNumStyle(i1));
            j3++;
        }
        j2 *= 10;
        i2++;
    } while (true);
    arraylist.add(formatNumStyle(j1));
    Keyframe akeyframe[] = new Keyframe[1 + arraylist.size()];
    int k2 = 0;
    while (k2 <= arraylist.size()) 
    {
        float f1 = (1.0F / (float)arraylist.size()) * (float)k2;
        int l2;
        if (k2 == 0)
        {
            l2 = 0;
        } else
        {
            l2 = k2 - 1;
        }
        akeyframe[k2] = Keyframe.ofObject(f1, arraylist.get(l2));
        k2++;
    }
    ValueAnimator valueanimator = ValueAnimator.ofPropertyValuesHolder(new PropertyValuesHolder[] {
        PropertyValuesHolder.ofKeyframe("Text", akeyframe)
    });
    valueanimator.setEvaluator(new g());
    valueanimator.addUpdateListener(new h(textview));
    valueanimator.setDuration(20 * akeyframe.length);
    return valueanimator;
}
 
源代码12 项目: MiBandDecompiled   文件: AnimUtil.java
public static Animator animNumSwitch1(int i1, int j1, TextView textview)
{
    String s = String.valueOf(i1);
    int ai[] = new int[s.length()];
    for (int k1 = 0; k1 < s.length(); k1++)
    {
        ai[-1 + (s.length() - k1)] = -48 + s.charAt(k1);
        Debug.i("Chart.AnimUtil", (new StringBuilder()).append("Num : ").append(ai[-1 + (s.length() - k1)]).toString());
    }

    String s1 = String.valueOf(j1);
    int ai1[] = new int[s1.length()];
    for (int l1 = 0; l1 < s1.length(); l1++)
    {
        ai1[-1 + (s1.length() - l1)] = -48 + s1.charAt(l1);
        Debug.i("Chart.AnimUtil", (new StringBuilder()).append("Num : ").append(ai1[-1 + (s1.length() - l1)]).toString());
    }

    ArrayList arraylist = new ArrayList();
    for (int i2 = -1 + ai1.length; i2 >= 0; i2--)
    {
        int k2 = ai1[i2];
        int l2;
        if (ai.length > i2)
        {
            l2 = ai[i2];
        } else
        {
            l2 = 0;
        }
        if (k2 > l2)
        {
            for (int j3 = 0; j3 < 1 + (k2 - l2); j3++)
            {
                arraylist.add(a(s, s1, i2, l2 + j3));
            }

            continue;
        }
        if (k2 < l2)
        {
            for (int i3 = 0; i3 < 1 + (l2 - k2); i3++)
            {
                arraylist.add(a(s, s1, i2, l2 - i3));
            }

        } else
        {
            arraylist.add(a(s, s1, i2, l2));
        }
    }

    Keyframe akeyframe[] = new Keyframe[1 + arraylist.size()];
    Iterator iterator = arraylist.iterator();
    int j2 = 0;
    while (iterator.hasNext()) 
    {
        String s2 = (String)iterator.next();
        j2++;
        akeyframe[j2] = Keyframe.ofObject((1.0F / (float)arraylist.size()) * (float)j2, s2);
    }
    akeyframe[0] = akeyframe[1];
    ValueAnimator valueanimator = ValueAnimator.ofPropertyValuesHolder(new PropertyValuesHolder[] {
        PropertyValuesHolder.ofKeyframe("Text", akeyframe)
    });
    valueanimator.setEvaluator(new i());
    valueanimator.addUpdateListener(new j(textview));
    valueanimator.setDuration(20L);
    return valueanimator;
}
 
源代码13 项目: ZDepthShadow   文件: ShadowView.java
protected void changeZDepth(ZDepth zDepth) {

        int   newAlphaTopShadow      = zDepth.getAlphaTopShadow();
        int   newAlphaBottomShadow   = zDepth.getAlphaBottomShadow();
        float newOffsetYTopShadow    = zDepth.getOffsetYTopShadowPx(getContext());
        float newOffsetYBottomShadow = zDepth.getOffsetYBottomShadowPx(getContext());
        float newBlurTopShadow       = zDepth.getBlurTopShadowPx(getContext());
        float newBlurBottomShadow    = zDepth.getBlurBottomShadowPx(getContext());

        if (!mZDepthDoAnimation) {
            mZDepthParam.mAlphaTopShadow        = newAlphaTopShadow;
            mZDepthParam.mAlphaBottomShadow     = newAlphaBottomShadow;
            mZDepthParam.mOffsetYTopShadowPx    = newOffsetYTopShadow;
            mZDepthParam.mOffsetYBottomShadowPx = newOffsetYBottomShadow;
            mZDepthParam.mBlurTopShadowPx       = newBlurTopShadow;
            mZDepthParam.mBlurBottomShadowPx    = newBlurBottomShadow;

            mShadow.setParameter(mZDepthParam,
                    mZDepthPaddingLeft,
                    mZDepthPaddingTop,
                    getWidth() - mZDepthPaddingRight,
                    getHeight() - mZDepthPaddingBottom);
            invalidate();
            return;
        }

        int   nowAlphaTopShadow      = mZDepthParam.mAlphaTopShadow;
        int   nowAlphaBottomShadow   = mZDepthParam.mAlphaBottomShadow;
        float nowOffsetYTopShadow    = mZDepthParam.mOffsetYTopShadowPx;
        float nowOffsetYBottomShadow = mZDepthParam.mOffsetYBottomShadowPx;
        float nowBlurTopShadow       = mZDepthParam.mBlurTopShadowPx;
        float nowBlurBottomShadow    = mZDepthParam.mBlurBottomShadowPx;

        PropertyValuesHolder alphaTopShadowHolder     = PropertyValuesHolder.ofInt(ANIM_PROPERTY_ALPHA_TOP_SHADOW,
                nowAlphaTopShadow,
                newAlphaTopShadow);
        PropertyValuesHolder alphaBottomShadowHolder  = PropertyValuesHolder.ofInt(ANIM_PROPERTY_ALPHA_BOTTOM_SHADOW,
                nowAlphaBottomShadow,
                newAlphaBottomShadow);
        PropertyValuesHolder offsetTopShadowHolder    = PropertyValuesHolder.ofFloat(ANIM_PROPERTY_OFFSET_TOP_SHADOW,
                nowOffsetYTopShadow,
                newOffsetYTopShadow);
        PropertyValuesHolder offsetBottomShadowHolder = PropertyValuesHolder.ofFloat(ANIM_PROPERTY_OFFSET_BOTTOM_SHADOW,
                nowOffsetYBottomShadow,
                newOffsetYBottomShadow);
        PropertyValuesHolder blurTopShadowHolder      = PropertyValuesHolder.ofFloat(ANIM_PROPERTY_BLUR_TOP_SHADOW,
                nowBlurTopShadow,
                newBlurTopShadow);
        PropertyValuesHolder blurBottomShadowHolder   = PropertyValuesHolder.ofFloat(ANIM_PROPERTY_BLUR_BOTTOM_SHADOW,
                nowBlurBottomShadow,
                newBlurBottomShadow);

        ValueAnimator anim = ValueAnimator
                .ofPropertyValuesHolder(
                        alphaTopShadowHolder,
                        alphaBottomShadowHolder,
                        offsetTopShadowHolder,
                        offsetBottomShadowHolder,
                        blurTopShadowHolder,
                        blurBottomShadowHolder);
        anim.setDuration(mZDepthAnimDuration);
        anim.setInterpolator(new LinearInterpolator());
        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                int   alphaTopShadow     = (Integer) animation.getAnimatedValue(ANIM_PROPERTY_ALPHA_TOP_SHADOW);
                int   alphaBottomShadow  = (Integer) animation.getAnimatedValue(ANIM_PROPERTY_ALPHA_BOTTOM_SHADOW);
                float offsetTopShadow    = (Float) animation.getAnimatedValue(ANIM_PROPERTY_OFFSET_TOP_SHADOW);
                float offsetBottomShadow = (Float) animation.getAnimatedValue(ANIM_PROPERTY_OFFSET_BOTTOM_SHADOW);
                float blurTopShadow      = (Float) animation.getAnimatedValue(ANIM_PROPERTY_BLUR_TOP_SHADOW);
                float blurBottomShadow   = (Float) animation.getAnimatedValue(ANIM_PROPERTY_BLUR_BOTTOM_SHADOW);

                mZDepthParam.mAlphaTopShadow = alphaTopShadow;
                mZDepthParam.mAlphaBottomShadow = alphaBottomShadow;
                mZDepthParam.mOffsetYTopShadowPx = offsetTopShadow;
                mZDepthParam.mOffsetYBottomShadowPx = offsetBottomShadow;
                mZDepthParam.mBlurTopShadowPx = blurTopShadow;
                mZDepthParam.mBlurBottomShadowPx = blurBottomShadow;

                mShadow.setParameter(mZDepthParam,
                        mZDepthPaddingLeft,
                        mZDepthPaddingTop,
                        getWidth() - mZDepthPaddingRight,
                        getHeight() - mZDepthPaddingBottom);

                invalidate();
             }
         });
        anim.start();
    }