Berislav 9 лет назад
Родитель
Сommit
6011390248

+ 2 - 5
app/src/main/java/hr/tacitus/componentpack/layouts/StatsBoundsLayout.java

@@ -14,6 +14,8 @@ import android.widget.TextView;
 import hr.tacitus.componentpack.R;
 import hr.tacitus.componentpack.R;
 import hr.tacitus.componentpack.views.ArcView;
 import hr.tacitus.componentpack.views.ArcView;
 
 
+import static android.view.View.MeasureSpec.makeMeasureSpec;
+
 /**
 /**
  * Created by Bero on 7.7.2017..
  * Created by Bero on 7.7.2017..
  */
  */
@@ -84,11 +86,6 @@ public class StatsBoundsLayout extends ConstraintLayout {
         }
         }
     }
     }
 
 
-    @Override
-    public void onMeasure(int w, int h) {
-        super.onMeasure(w, h);
-    }
-
     private void initComponents() {
     private void initComponents() {
         if (textSize != 0.f) {
         if (textSize != 0.f) {
             TextView[] tvs = {tvAverage, tvMinimum, tvMaximum};
             TextView[] tvs = {tvAverage, tvMinimum, tvMaximum};

+ 33 - 6
app/src/main/java/hr/tacitus/componentpack/views/ArcView.java

@@ -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);
         }
         }
     }
     }
 }
 }

+ 12 - 9
app/src/main/res/layout/view_stats_bounds.xml

@@ -3,9 +3,10 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     tools:layout_editor_absoluteX="0dp"
     tools:layout_editor_absoluteX="0dp"
-    tools:layout_editor_absoluteY="81dp">
+    tools:layout_editor_absoluteY="81dp"
+    tools:layout_height="150dp">
 
 
     <TextView
     <TextView
         android:id="@+id/tvAverage"
         android:id="@+id/tvAverage"
@@ -24,14 +25,16 @@
     <hr.tacitus.componentpack.views.ArcView
     <hr.tacitus.componentpack.views.ArcView
         android:id="@+id/arcView"
         android:id="@+id/arcView"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:layout_height="0dp"
+        android:layout_marginBottom="8dp"
         android:layout_marginLeft="8dp"
         android:layout_marginLeft="8dp"
         android:layout_marginRight="8dp"
         android:layout_marginRight="8dp"
-        android:layout_marginTop="0dp"
-        app:backgroundColor="?android:colorBackground"
+        android:layout_marginTop="8dp"
+        app:layout_constraintBottom_toTopOf="@+id/tvMaximum"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/tvAverage"
         app:layout_constraintTop_toBottomOf="@+id/tvAverage"
+        app:layout_constraintHeight_default="spread"
         tools:layout_height="75dp"
         tools:layout_height="75dp"
         tools:layout_width="180dp" />
         tools:layout_width="180dp" />
 
 
@@ -39,21 +42,21 @@
         android:id="@+id/tvMinimum"
         android:id="@+id/tvMinimum"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="0dp"
+        android:layout_marginBottom="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintHorizontal_chainStyle="spread_inside"
         app:layout_constraintHorizontal_chainStyle="spread_inside"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toLeftOf="@+id/tvMaximum"
         app:layout_constraintRight_toLeftOf="@+id/tvMaximum"
-        app:layout_constraintTop_toBottomOf="@id/arcView"
         tools:text="TextView" />
         tools:text="TextView" />
 
 
     <TextView
     <TextView
         android:id="@id/tvMaximum"
         android:id="@id/tvMaximum"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="0dp"
+        android:layout_marginBottom="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toRightOf="@id/tvMinimum"
         app:layout_constraintLeft_toRightOf="@id/tvMinimum"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/arcView"
         tools:text="TextView" />
         tools:text="TextView" />
 
 
 </android.support.constraint.ConstraintLayout>
 </android.support.constraint.ConstraintLayout>

+ 0 - 1
componentsactivity/src/main/res/layout/activity_main.xml

@@ -34,7 +34,6 @@
         android:layout_marginTop="89dp"
         android:layout_marginTop="89dp"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintRight_toRightOf="parent"
-        android:background="@android:color/holo_purple"
 
 
         app:textSize="10sp" />
         app:textSize="10sp" />