Loading graphics/java/android/graphics/drawable/RippleComponent.java +4 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.animation.Animator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.util.DisplayMetrics; import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; Loading Loading @@ -50,7 +51,7 @@ abstract class RippleComponent { protected float mTargetRadius; /** Screen density used to adjust pixel-based constants. */ protected float mDensity; protected float mDensityScale; /** * If set, force all ripple animations to not run on RenderThread, even if it would be Loading @@ -71,7 +72,7 @@ abstract class RippleComponent { } } public final void setup(float maxRadius, float density) { public final void setup(float maxRadius, int densityDpi) { if (maxRadius >= 0) { mHasMaxRadius = true; mTargetRadius = maxRadius; Loading @@ -79,7 +80,7 @@ abstract class RippleComponent { mTargetRadius = getTargetRadius(mBounds); } mDensity = density; mDensityScale = densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE; onTargetRadiusChanged(mTargetRadius); } Loading graphics/java/android/graphics/drawable/RippleDrawable.java +2 −3 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ public class RippleDrawable extends LayerDrawable { private Paint mRipplePaint; /** Target density of the display into which ripples are drawn. */ private float mDensity = 1.0f; private int mDensity; /** Whether bounds are being overridden. */ private boolean mOverrideBounds; Loading Loading @@ -544,8 +544,7 @@ public class RippleDrawable extends LayerDrawable { mBackground = new RippleBackground(this, mHotspotBounds, mForceSoftware); } final float densityScale = mState.mDensity * DisplayMetrics.DENSITY_DEFAULT_SCALE; mBackground.setup(mState.mMaxRadius, densityScale); mBackground.setup(mState.mMaxRadius, mDensity); mBackground.enter(focused); } Loading graphics/java/android/graphics/drawable/RippleForeground.java +2 −2 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ class RippleForeground extends RippleComponent { } final int duration = (int) (1000 * Math.sqrt(mTargetRadius / WAVE_TOUCH_DOWN_ACCELERATION * mDensity) + 0.5); (1000 * Math.sqrt(mTargetRadius / WAVE_TOUCH_DOWN_ACCELERATION * mDensityScale) + 0.5); final ObjectAnimator tweenRadius = ObjectAnimator.ofFloat(this, TWEEN_RADIUS, 1); tweenRadius.setAutoCancel(true); Loading Loading @@ -204,7 +204,7 @@ class RippleForeground extends RippleComponent { private int getRadiusExitDuration() { final float remainingRadius = mTargetRadius - getCurrentRadius(); return (int) (1000 * Math.sqrt(remainingRadius / (WAVE_TOUCH_UP_ACCELERATION + WAVE_TOUCH_DOWN_ACCELERATION) * mDensity) + 0.5); + WAVE_TOUCH_DOWN_ACCELERATION) * mDensityScale) + 0.5); } private float getCurrentRadius() { Loading Loading
graphics/java/android/graphics/drawable/RippleComponent.java +4 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.animation.Animator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.util.DisplayMetrics; import android.view.DisplayListCanvas; import android.view.RenderNodeAnimator; Loading Loading @@ -50,7 +51,7 @@ abstract class RippleComponent { protected float mTargetRadius; /** Screen density used to adjust pixel-based constants. */ protected float mDensity; protected float mDensityScale; /** * If set, force all ripple animations to not run on RenderThread, even if it would be Loading @@ -71,7 +72,7 @@ abstract class RippleComponent { } } public final void setup(float maxRadius, float density) { public final void setup(float maxRadius, int densityDpi) { if (maxRadius >= 0) { mHasMaxRadius = true; mTargetRadius = maxRadius; Loading @@ -79,7 +80,7 @@ abstract class RippleComponent { mTargetRadius = getTargetRadius(mBounds); } mDensity = density; mDensityScale = densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE; onTargetRadiusChanged(mTargetRadius); } Loading
graphics/java/android/graphics/drawable/RippleDrawable.java +2 −3 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ public class RippleDrawable extends LayerDrawable { private Paint mRipplePaint; /** Target density of the display into which ripples are drawn. */ private float mDensity = 1.0f; private int mDensity; /** Whether bounds are being overridden. */ private boolean mOverrideBounds; Loading Loading @@ -544,8 +544,7 @@ public class RippleDrawable extends LayerDrawable { mBackground = new RippleBackground(this, mHotspotBounds, mForceSoftware); } final float densityScale = mState.mDensity * DisplayMetrics.DENSITY_DEFAULT_SCALE; mBackground.setup(mState.mMaxRadius, densityScale); mBackground.setup(mState.mMaxRadius, mDensity); mBackground.enter(focused); } Loading
graphics/java/android/graphics/drawable/RippleForeground.java +2 −2 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ class RippleForeground extends RippleComponent { } final int duration = (int) (1000 * Math.sqrt(mTargetRadius / WAVE_TOUCH_DOWN_ACCELERATION * mDensity) + 0.5); (1000 * Math.sqrt(mTargetRadius / WAVE_TOUCH_DOWN_ACCELERATION * mDensityScale) + 0.5); final ObjectAnimator tweenRadius = ObjectAnimator.ofFloat(this, TWEEN_RADIUS, 1); tweenRadius.setAutoCancel(true); Loading Loading @@ -204,7 +204,7 @@ class RippleForeground extends RippleComponent { private int getRadiusExitDuration() { final float remainingRadius = mTargetRadius - getCurrentRadius(); return (int) (1000 * Math.sqrt(remainingRadius / (WAVE_TOUCH_UP_ACCELERATION + WAVE_TOUCH_DOWN_ACCELERATION) * mDensity) + 0.5); + WAVE_TOUCH_DOWN_ACCELERATION) * mDensityScale) + 0.5); } private float getCurrentRadius() { Loading