Java 类android.animation.IntEvaluator 实例源码

项目:minu-poska-android    文件:BaseActivity.java   
@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    if (mMainContent != null) {
        mMainContent.setAlpha(0);
        mMainContent.animate().alpha(1).setDuration(MAIN_CONTENT_FADEIN_DURATION);
    }
    if (mToolbar != null) {
        int[] attrs = {android.R.attr.textColorPrimary};
        TypedArray ta = obtainStyledAttributes(R.style.ToolbarNormalTheme, attrs);
        final int textColor = ta.getColor(0, Color.WHITE);

        ValueAnimator va = ValueAnimator.ofObject(new IntEvaluator(), 0, 255).setDuration(MAIN_CONTENT_FADEIN_DURATION);
        va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                mToolbar.setTitleTextColor(Color.argb((int) animation.getAnimatedValue(), Color.red(textColor), Color.green(textColor), Color.blue(textColor)));
            }
        });
        va.start();
        ta.recycle();
    }
}
项目:minu-poska-android    文件:BaseActivity.java   
protected void preFinish() {
    View mainContent = findViewById(R.id.mainContent);
    if (mainContent != null) {
        mainContent.animate().alpha(0).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
    }
    if (mToolbar != null) {
        int[] attrs = {android.R.attr.textColorPrimary};
        TypedArray ta = obtainStyledAttributes(R.style.ToolbarNormalTheme, attrs);
        final int textColor = ta.getColor(0, Color.WHITE);

        ValueAnimator va = ValueAnimator.ofObject(new IntEvaluator(), 255, 0).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
        va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                mToolbar.setTitleTextColor(Color.argb((int) animation.getAnimatedValue(), Color.red(textColor), Color.green(textColor), Color.blue(textColor)));
            }
        });
        va.start();
        ta.recycle();
    }
}
项目:Jockey    文件:GestureView.java   
/**
 * Animates the overlay to a specified radius, fades it out, and clears the current gesture
 * @param targetRadius The radius to animate the circular overlay to
 * @param time The time for this animation to last
 * @param alphaDelay An optional delay to add before animating the transparency of the overlay
 */
private void animateOutRadius(int targetRadius, int time, int alphaDelay) {
    ObjectAnimator alphaAnim = ObjectAnimator.ofObject(
            this, "overlayAlpha",
            new IntEvaluator(), mAlpha, 0);
    ObjectAnimator radiusAnim = ObjectAnimator.ofObject(
            this, "radius",
            new IntEvaluator(), (isRight() ? radius() : -radius()), targetRadius);

    radiusAnim
            .setDuration(time)
            .setInterpolator(AnimationUtils.loadInterpolator(getContext(),
                    android.R.interpolator.accelerate_quad));
    alphaAnim
            .setDuration(time)
            .setInterpolator(AnimationUtils.loadInterpolator(getContext(),
                    android.R.interpolator.accelerate_quad));

    radiusAnim.start();
    alphaAnim.setStartDelay(alphaDelay);
    alphaAnim.start();
}
项目:downtown    文件:Nearby.java   
@SuppressLint("NewApi")
private void drawCircle(){
    final Circle circle = map.addCircle(new CircleOptions()
            .center(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()))
            .strokeColor(Color.BLUE).radius(100));

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ValueAnimator vAnimator = new ValueAnimator();
        vAnimator.setRepeatCount(0);
        vAnimator.setRepeatMode(ValueAnimator.RESTART);  /* PULSE */
        vAnimator.setIntValues(0, 100);
        vAnimator.setDuration(1000);
        vAnimator.setEvaluator(new IntEvaluator());
        vAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
        vAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float animatedFraction = valueAnimator.getAnimatedFraction();
                // Log.e("", "" + animatedFraction);
                circle.setRadius(animatedFraction * 100);
            }
        });
        vAnimator.start();
    }
}
项目:weex-3d-map    文件:WXAnimationModule.java   
private static @Nullable
ObjectAnimator createAnimator(@NonNull WXAnimationBean animation, final View target) {
  if(target == null){
    return null;
  }
  WXAnimationBean.Style style = animation.styles;
  if (style != null) {
    ObjectAnimator animator;
    List<PropertyValuesHolder> holders =style.getHolders();
    if (!TextUtils.isEmpty(style.backgroundColor)) {
      BorderDrawable borderDrawable;
      if ((borderDrawable=WXViewUtils.getBorderDrawable(target))!=null) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            borderDrawable.getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      } else if (target.getBackground() instanceof ColorDrawable) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            ((ColorDrawable) target.getBackground()).getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      }
    }
    if (style.getPivot() != null) {
      Pair<Float, Float> pair = style.getPivot();
      target.setPivotX(pair.first);
      target.setPivotY(pair.second);
    }
    animator = ObjectAnimator.ofPropertyValuesHolder(
        target, holders.toArray(new PropertyValuesHolder[holders.size()]));
    animator.setStartDelay(animation.delay);
    final IntEvaluator intEvaluator=new IntEvaluator();
    if (target.getLayoutParams() != null &&
        (!TextUtils.isEmpty(style.width) || !TextUtils.isEmpty(style.height))) {
      DimensionUpdateListener listener = new DimensionUpdateListener(target);
      ViewGroup.LayoutParams layoutParams = target.getLayoutParams();
      if (!TextUtils.isEmpty(style.width)) {
        listener.setWidth(layoutParams.width,
                          (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.width)));
      }
      if (!TextUtils.isEmpty(style.height)) {
        listener.setHeight(layoutParams.height,
                           (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.height)));
      }
      animator.addUpdateListener(listener);
    }
    return animator;
  } else {
    return null;
  }
}
项目:weex-3d-map    文件:DimensionUpdateListener.java   
DimensionUpdateListener(@NonNull View view) {
  this.view = view;
  intEvaluator = new IntEvaluator();
}
项目:ViewPagerAnimator    文件:ViewPagerAnimator.java   
public static ViewPagerAnimator<Integer> ofInt(ViewPager viewPager, Provider<Integer> provider, Property<Integer> property) {
    final IntEvaluator evaluator = new IntEvaluator();
    final Interpolator interpolator = new LinearInterpolator();

    return ofInt(viewPager, provider, property, evaluator, interpolator);
}
项目:weex-uikit    文件:DimensionUpdateListener.java   
DimensionUpdateListener(@NonNull View view) {
  this.view = view;
  intEvaluator = new IntEvaluator();
}
项目:weex-3d-map    文件:DimensionUpdateListener.java   
DimensionUpdateListener(@NonNull View view) {
  this.view = view;
  intEvaluator = new IntEvaluator();
}
项目:weex-3d-map    文件:WXAnimationModule.java   
private static @Nullable
ObjectAnimator createAnimator(@NonNull WXAnimationBean animation, final View target) {
  if(target == null){
    return null;
  }
  WXAnimationBean.Style style = animation.styles;
  if (style != null) {
    ObjectAnimator animator;
    List<PropertyValuesHolder> holders =style.getHolders();
    if (!TextUtils.isEmpty(style.backgroundColor)) {
      BorderDrawable borderDrawable;
      if ((borderDrawable=WXViewUtils.getBorderDrawable(target))!=null) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            borderDrawable.getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      } else if (target.getBackground() instanceof ColorDrawable) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            ((ColorDrawable) target.getBackground()).getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      }
    }
    if (style.getPivot() != null) {
      Pair<Float, Float> pair = style.getPivot();
      target.setPivotX(pair.first);
      target.setPivotY(pair.second);
    }
    animator = ObjectAnimator.ofPropertyValuesHolder(
        target, holders.toArray(new PropertyValuesHolder[holders.size()]));
    animator.setStartDelay(animation.delay);
    final IntEvaluator intEvaluator=new IntEvaluator();
    if (target.getLayoutParams() != null &&
        (!TextUtils.isEmpty(style.width) || !TextUtils.isEmpty(style.height))) {
      DimensionUpdateListener listener = new DimensionUpdateListener(target);
      ViewGroup.LayoutParams layoutParams = target.getLayoutParams();
      if (!TextUtils.isEmpty(style.width)) {
        listener.setWidth(layoutParams.width,
                          (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.width)));
      }
      if (!TextUtils.isEmpty(style.height)) {
        listener.setHeight(layoutParams.height,
                           (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.height)));
      }
      animator.addUpdateListener(listener);
    }
    return animator;
  } else {
    return null;
  }
}
项目:Weex-TestDemo    文件:DimensionUpdateListener.java   
DimensionUpdateListener(@NonNull View view) {
  this.view = view;
  intEvaluator = new IntEvaluator();
}
项目:Weex-TestDemo    文件:WXAnimationModule.java   
private static @Nullable
ObjectAnimator createAnimator(@NonNull WXAnimationBean animation, final View target) {
  if(target == null){
    return null;
  }
  WXAnimationBean.Style style = animation.styles;
  if (style != null) {
    ObjectAnimator animator;
    List<PropertyValuesHolder> holders =style.getHolders();
    if (!TextUtils.isEmpty(style.backgroundColor)) {
      BorderDrawable borderDrawable;
      if ((borderDrawable=WXViewUtils.getBorderDrawable(target))!=null) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            borderDrawable.getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      } else if (target.getBackground() instanceof ColorDrawable) {
        holders.add(PropertyValuesHolder.ofObject(
            WXAnimationBean.Style.BACKGROUND_COLOR, new ArgbEvaluator(),
            ((ColorDrawable) target.getBackground()).getColor(),
            WXResourceUtils.getColor(style.backgroundColor)));
      }
    }
    if (style.getPivot() != null) {
      Pair<Float, Float> pair = style.getPivot();
      target.setPivotX(pair.first);
      target.setPivotY(pair.second);
    }
    animator = ObjectAnimator.ofPropertyValuesHolder(
        target, holders.toArray(new PropertyValuesHolder[holders.size()]));
    animator.setStartDelay(animation.delay);
    final IntEvaluator intEvaluator=new IntEvaluator();
    if (target.getLayoutParams() != null &&
        (!TextUtils.isEmpty(style.width) || !TextUtils.isEmpty(style.height))) {
      DimensionUpdateListener listener = new DimensionUpdateListener(target);
      ViewGroup.LayoutParams layoutParams = target.getLayoutParams();
      if (!TextUtils.isEmpty(style.width)) {
        listener.setWidth(layoutParams.width,
                          (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.width)));
      }
      if (!TextUtils.isEmpty(style.height)) {
        listener.setHeight(layoutParams.height,
                           (int) WXViewUtils.getRealPxByWidth(WXUtils.getFloat(style.height)));
      }
      animator.addUpdateListener(listener);
    }
    return animator;
  } else {
    return null;
  }
}
项目:AndroidExerciseProgram    文件:AnimateBiz.java   
@Override
public void perforAnimate(AnimateType animateType, final View view, final DisplayMetrics metrics) {
    float startValue=animateType.getStartValue();
    float endValue=animateType.getEndValue();
    switch (animateType.getType()) {
        case R.id.bt_scale_big:
            ObjectAnimator.ofFloat(view, "scaleX", startValue, endValue).setDuration(1000).start();
            ObjectAnimator.ofFloat(view, "scaleY", startValue, endValue).setDuration(1000).start();
            break;
        case R.id.bt_scale_small:
            ObjectAnimator.ofFloat(view, "scaleX", endValue, startValue).setDuration(1000).start();
            ObjectAnimator.ofFloat(view, "scaleY", endValue, startValue).setDuration(1000).start();
            break;
        case R.id.bt_rotate:
            ObjectAnimator.ofFloat(view, "rotationX", startValue, endValue).setDuration(1000).start();
            ObjectAnimator.ofFloat(view, "rotationY", startValue, endValue).setDuration(1000).start();
            break;
        case R.id.bt_circle:
            final int width = metrics.widthPixels / 2;
            final int height = metrics.heightPixels / 2;
            ValueAnimator valueAnimator = ValueAnimator.ofInt(1, 1000);
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

                private IntEvaluator evaluator = new IntEvaluator();

                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    int value = (int) animation.getAnimatedValue();
                    float fraction = (float) (value / 1000.0);

                    Integer evaluate = evaluator.evaluate(fraction, 0, width * 2);
                    if (evaluate <= width) {
                        view.setX((width * 2 - view.getMeasuredWidth()) / 2 + evaluate);
                        view.setY((float) (height + Math.sqrt(Math.pow(width / 2, 2) - Math.pow(width / 2 - evaluate, 2))));
                    } else {
                        view.setX((width * 2 - view.getMeasuredWidth()) / 2 + width - (evaluate - width));
                        view.setY((float) (height - Math.sqrt(Math.pow(width / 2, 2) - Math.pow(width / 2 - (evaluate - width), 2))));
                    }

                }
            });
            valueAnimator.setDuration(2000).start();
            break;
    }
}