|
@@ -3,12 +3,17 @@ package hr.tacitus.componentpack.views;
|
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.PackageManager;
|
|
|
import android.content.res.TypedArray;
|
|
import android.content.res.TypedArray;
|
|
|
|
|
+import android.graphics.Bitmap;
|
|
|
import android.graphics.Canvas;
|
|
import android.graphics.Canvas;
|
|
|
import android.graphics.Color;
|
|
import android.graphics.Color;
|
|
|
import android.graphics.LinearGradient;
|
|
import android.graphics.LinearGradient;
|
|
|
import android.graphics.Paint;
|
|
import android.graphics.Paint;
|
|
|
|
|
+import android.graphics.Path;
|
|
|
|
|
+import android.graphics.PorterDuff;
|
|
|
|
|
+import android.graphics.PorterDuffXfermode;
|
|
|
import android.graphics.RectF;
|
|
import android.graphics.RectF;
|
|
|
import android.graphics.Shader;
|
|
import android.graphics.Shader;
|
|
|
|
|
+import android.graphics.drawable.ColorDrawable;
|
|
|
import android.util.AttributeSet;
|
|
import android.util.AttributeSet;
|
|
|
import android.view.View;
|
|
import android.view.View;
|
|
|
import android.view.ViewTreeObserver;
|
|
import android.view.ViewTreeObserver;
|
|
@@ -18,6 +23,9 @@ import java.io.UTFDataFormatException;
|
|
|
import hr.tacitus.componentpack.R;
|
|
import hr.tacitus.componentpack.R;
|
|
|
import hr.tacitus.componentpack.Utils;
|
|
import hr.tacitus.componentpack.Utils;
|
|
|
|
|
|
|
|
|
|
+import static android.R.attr.radius;
|
|
|
|
|
+import static android.R.attr.width;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Created by Bero on 6.7.2017..
|
|
* Created by Bero on 6.7.2017..
|
|
|
*/
|
|
*/
|
|
@@ -72,9 +80,11 @@ public class ArcView extends View {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
arcPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
arcPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
|
|
|
+ arcPaint.setStyle(Paint.Style.STROKE);
|
|
|
|
|
+ arcPaint.setStrokeWidth(arcWidthInPixels);
|
|
|
|
|
|
|
|
canvasPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
canvasPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
|
- canvasPaint.setColor(backgroundColor);
|
|
|
|
|
|
|
+ canvasPaint.setColor(Color.BLACK);
|
|
|
|
|
|
|
|
getRootView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
|
getRootView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
|
|
@Override
|
|
@Override
|
|
@@ -92,7 +102,8 @@ public class ArcView extends View {
|
|
|
float height = (getMeasuredHeight() - (getPaddingTop() + getPaddingBottom())) * 2;
|
|
float height = (getMeasuredHeight() - (getPaddingTop() + getPaddingBottom())) * 2;
|
|
|
float bottom = top + height;
|
|
float bottom = top + height;
|
|
|
|
|
|
|
|
- arcRect = new RectF(left, top, right, bottom);
|
|
|
|
|
|
|
+ float widthCompensation = arcWidthInPixels / 2;
|
|
|
|
|
+ arcRect = new RectF(left + widthCompensation, top + widthCompensation, right - widthCompensation, bottom);
|
|
|
|
|
|
|
|
Shader shader = new LinearGradient(left, 0, right, 0, beginColor, endColor,
|
|
Shader shader = new LinearGradient(left, 0, right, 0, beginColor, endColor,
|
|
|
Shader.TileMode.CLAMP);
|
|
Shader.TileMode.CLAMP);
|
|
@@ -131,7 +142,7 @@ public class ArcView extends View {
|
|
|
height = heightSize;
|
|
height = heightSize;
|
|
|
break;
|
|
break;
|
|
|
case MeasureSpec.AT_MOST:
|
|
case MeasureSpec.AT_MOST:
|
|
|
- height = Math.min(intrinsicHeight, heightSize);
|
|
|
|
|
|
|
+ height = Math.min(heightSize, width / 2);
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|
|
|
height = intrinsicHeight;
|
|
height = intrinsicHeight;
|
|
@@ -144,11 +155,27 @@ public class ArcView extends View {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onDraw(Canvas canvas) {
|
|
public void onDraw(Canvas canvas) {
|
|
|
- canvas.drawPaint(canvasPaint);
|
|
|
|
|
|
|
+ // canvas.drawPaint(canvasPaint);
|
|
|
|
|
+ super.onDraw(canvas);
|
|
|
|
|
|
|
|
if (arcRect != null) {
|
|
if (arcRect != null) {
|
|
|
- canvas.drawArc(arcRect, 180, 180, true, arcPaint);
|
|
|
|
|
- canvas.drawArc(subArcRect, 180, 180, true, canvasPaint);
|
|
|
|
|
|
|
+// float radius = getWidth() / 4.f;
|
|
|
|
|
+
|
|
|
|
|
+// Path path = new Path();
|
|
|
|
|
+// path.addCircle(arcRect.centerX(), arcRect.centerY(), radius, Path.Direction.CW);
|
|
|
|
|
+//
|
|
|
|
|
+// final RectF oval = new RectF();
|
|
|
|
|
+//
|
|
|
|
|
+
|
|
|
|
|
+// oval.set(arcRect.centerX() - radius, arcRect.centerY() - radius, arcRect.centerX() + radius,
|
|
|
|
|
+// arcRect.centerY() + radius);
|
|
|
|
|
+
|
|
|
|
|
+ canvas.drawArc(arcRect, 180, 180, false, arcPaint);
|
|
|
|
|
+ // canvas.drawArc(arcRect, 180, 180, true, arcPaint);
|
|
|
|
|
+// canvas.drawArc();c
|
|
|
|
|
+ // canvas.drawBitmap(Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888), 0, 0, canvasPaint);
|
|
|
|
|
+ // canvasPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
|
|
|
|
|
+ // canvas.drawArc(subArcRect, 180, 180, true, canvasPaint);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|