aboutsummaryrefslogtreecommitdiffstats
path: root/libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java
diff options
context:
space:
mode:
Diffstat (limited to 'libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java')
-rw-r--r--libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java149
1 files changed, 0 insertions, 149 deletions
diff --git a/libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java b/libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java
deleted file mode 100644
index 2609655b..00000000
--- a/libs/SwipyRefreshLayout/src/main/java/com/orangegangsters/github/swipyrefreshlayout/library/CircleImageView.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.orangegangsters.github.swipyrefreshlayout.library;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-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.widget.ImageView;
-
-/**
- * Private class created to work around issues with AnimationListeners being
- * called before the animation is actually complete and support shadows on older
- * platforms.
- *
- * @hide
- */
-class CircleImageView extends ImageView {
-
- private static final int KEY_SHADOW_COLOR = 0x1E000000;
- private static final int FILL_SHADOW_COLOR = 0x3D000000;
- // PX
- private static final float X_OFFSET = 0f;
- private static final float Y_OFFSET = 1.75f;
- private static final float SHADOW_RADIUS = 3.5f;
- private static final int SHADOW_ELEVATION = 4;
-
- private Animation.AnimationListener mListener;
- private int mShadowRadius;
-
- 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);
- } 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.getPaint().setColor(color);
- setBackgroundDrawable(circle);
- }
-
- private boolean elevationSupported() {
- return android.os.Build.VERSION.SDK_INT >= 21;
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- if (!elevationSupported()) {
- setMeasuredDimension(getMeasuredWidth() + mShadowRadius*2, getMeasuredHeight()
- + mShadowRadius*2);
- }
- }
-
- public void setAnimationListener(Animation.AnimationListener listener) {
- mListener = listener;
- }
-
- @Override
- public void onAnimationStart() {
- super.onAnimationStart();
- if (mListener != null) {
- mListener.onAnimationStart(getAnimation());
- }
- }
-
- @Override
- public void onAnimationEnd() {
- super.onAnimationEnd();
- if (mListener != null) {
- mListener.onAnimationEnd(getAnimation());
- }
- }
-
- /**
- * Update the background color of the circle image view.
- */
- public void setBackgroundColor(int colorRes) {
- if (getBackground() instanceof ShapeDrawable) {
- final Resources res = getResources();
- ((ShapeDrawable) getBackground()).getPaint().setColor(res.getColor(colorRes));
- }
- }
-
- private class OvalShadow extends OvalShape {
- private RadialGradient mRadialGradient;
- private int mShadowRadius;
- private Paint mShadowPaint;
- private int mCircleDiameter;
-
- public OvalShadow(int shadowRadius, int circleDiameter) {
- super();
- mShadowPaint = new Paint();
- mShadowRadius = shadowRadius;
- mCircleDiameter = circleDiameter;
- mRadialGradient = new RadialGradient(mCircleDiameter / 2, mCircleDiameter / 2,
- mShadowRadius, new int[] {
- FILL_SHADOW_COLOR, Color.TRANSPARENT
- }, null, Shader.TileMode.CLAMP);
- mShadowPaint.setShader(mRadialGradient);
- }
-
- @Override
- 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),
- mShadowPaint);
- canvas.drawCircle(viewWidth / 2, viewHeight / 2, (mCircleDiameter / 2), paint);
- }
- }
-}