Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1411)

Unified Diff: third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/CircleImageView.java

Issue 894193005: [Android] Use the platform SwipeRefreshLayout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/CircleImageView.java
diff --git a/third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/CircleImageView.java b/third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/CircleImageView.java
similarity index 79%
rename from third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/CircleImageView.java
rename to third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/CircleImageView.java
index 94963925475d30b208f6f0fc494cfe18a6f997e4..fcb2185aeb887a7f8afda4ba10b82616808735e5 100644
--- a/third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/CircleImageView.java
+++ b/third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/CircleImageView.java
@@ -25,8 +25,8 @@ import android.graphics.RadialGradient;
import android.graphics.Shader;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
-import android.support.v4.view.ViewCompat;
import android.view.animation.Animation;
+import android.view.View;
import android.widget.ImageView;
/**
@@ -49,28 +49,18 @@ class CircleImageView extends ImageView {
private Animation.AnimationListener mListener;
private int mShadowRadius;
+ @SuppressWarnings("deprecation")
public CircleImageView(Context context, int color, final float radius) {
super(context);
final float density = getContext().getResources().getDisplayMetrics().density;
- final int diameter = (int) (radius * density * 2);
- final int shadowYOffset = (int) (density * Y_OFFSET);
- final int shadowXOffset = (int) (density * X_OFFSET);
mShadowRadius = (int) (density * SHADOW_RADIUS);
ShapeDrawable circle;
if (elevationSupported()) {
- circle = new ShapeDrawable(new OvalShape());
- ViewCompat.setElevation(this, SHADOW_ELEVATION * density);
+ circle = initializeElevated(density);
} else {
- OvalShape oval = new OvalShadow(mShadowRadius, diameter);
- circle = new ShapeDrawable(oval);
- ViewCompat.setLayerType(this, ViewCompat.LAYER_TYPE_SOFTWARE, circle.getPaint());
- circle.getPaint().setShadowLayer(mShadowRadius, shadowXOffset, shadowYOffset,
- KEY_SHADOW_COLOR);
- final int padding = (int) mShadowRadius;
- // set padding so the inner image sits correctly within the shadow.
- setPadding(padding, padding, padding, padding);
+ circle = initializeNonElevated(radius, density);
}
circle.getPaint().setColor(color);
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
@@ -80,6 +70,27 @@ class CircleImageView extends ImageView {
}
}
+ ShapeDrawable initializeElevated(float density) {
+ ShapeDrawable circle = new ShapeDrawable(new OvalShape());
+ setElevation(SHADOW_ELEVATION * density);
+ return circle;
+ }
+
+ ShapeDrawable initializeNonElevated(float radius, float density) {
+ final int diameter = (int) (radius * density * 2);
+ final int shadowYOffset = (int) (density * Y_OFFSET);
+ final int shadowXOffset = (int) (density * X_OFFSET);
+ OvalShape oval = new OvalShadow(mShadowRadius, diameter);
+ ShapeDrawable circle = new ShapeDrawable(oval);
+ setLayerType(View.LAYER_TYPE_SOFTWARE, circle.getPaint());
+ circle.getPaint().setShadowLayer(mShadowRadius, shadowXOffset, shadowYOffset,
+ KEY_SHADOW_COLOR);
+ final int padding = (int) mShadowRadius;
+ // set padding so the inner image sits correctly within the shadow.
+ setPadding(padding, padding, padding, padding);
+ return circle;
+ }
+
private boolean elevationSupported() {
return android.os.Build.VERSION.SDK_INT >= 21;
}
@@ -134,7 +145,7 @@ class CircleImageView extends ImageView {
mShadowPaint = new Paint();
mShadowRadius = shadowRadius;
mCircleDiameter = circleDiameter;
- mRadialGradient = new RadialGradient(mCircleDiameter / 2, mCircleDiameter / 2,
+ mRadialGradient = new RadialGradient(mCircleDiameter / 2f, mCircleDiameter / 2f,
mShadowRadius, new int[] {
FILL_SHADOW_COLOR, Color.TRANSPARENT
}, null, Shader.TileMode.CLAMP);
@@ -145,9 +156,9 @@ class CircleImageView extends ImageView {
public void draw(Canvas canvas, Paint paint) {
final int viewWidth = CircleImageView.this.getWidth();
final int viewHeight = CircleImageView.this.getHeight();
- canvas.drawCircle(viewWidth / 2, viewHeight / 2, (mCircleDiameter / 2 + mShadowRadius),
+ canvas.drawCircle(viewWidth / 2f, viewHeight / 2f, (mCircleDiameter / 2f + mShadowRadius),
mShadowPaint);
- canvas.drawCircle(viewWidth / 2, viewHeight / 2, (mCircleDiameter / 2), paint);
+ canvas.drawCircle(viewWidth / 2f, viewHeight / 2f, (mCircleDiameter / 2f), paint);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698