diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java index 0ff0cb8..437cf85 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java @@ -7,9 +7,9 @@ package com.tenlionsoft.baselib.core.retrofit_net; */ public class BaseUrlApi { - public static final String IP = "http://192.168.0.15:7011/";/* 测试IP */ +// public static final String IP = "http://192.168.0.15:7011/";/* 测试IP */ // public static final String IP = "http://10.25.242.183:80/";/* 测试IP */ -// public static final String IP = "http://www.wlcbsyzl.cn/";/* 正式IP */ + public static final String IP = "http://www.wlcbsyzl.cn/";/* 正式IP */ public static final String SYS_USERCENTER = "usercenter/"; public static final String SYS_POPULATION = "populationhouse/";/*人口系统*/ public static final String SYS_CASE = "case/";/*事件部件*/ diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java new file mode 100644 index 0000000..212ebf4 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java @@ -0,0 +1,490 @@ +package com.tenlionsoft.baselib.core.widget.views; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.RectF; +import android.text.Spannable; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.Nullable; + +import com.tenlionsoft.baselib.utils.LogUtils; + +public class HalfCircleChartView extends View { + int mDiam = 800; //直径(环形背景) + int left = 50; + int top = 50; + + int mDiam2 = 700; //直径(数字) + int left2 = 150; + int top2 = 150; + + Path mPath; + Paint mPaintProgress; + Paint mPaintProgressColor; + + RectF mRectF; + RectF mRectF2; + + + public HalfCircleChartView(Context context) { + super(context, null); + } + + public HalfCircleChartView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + + initView(); + } + + private void initView() { + + mPath = new Path(); + mPath.reset(); + + mRectF = new RectF(left, top, left + mDiam, top + mDiam); + mRectF2 = new RectF(left2, top2, left2 + mDiam2, top2 + mDiam2); + + + mPaintProgress = new Paint(Paint.ANTI_ALIAS_FLAG); + mPaintProgress.setStrokeWidth(60); + mPaintProgress.setColor(Color.parseColor("#EBF0F6")); + mPaintProgress.setStyle(Paint.Style.STROKE); + mPaintProgress.setStrokeCap(Paint.Cap.ROUND); +// mPaintProgress.setAlpha(40); + mPaintProgress.setShadowLayer(6, -5, 5, Color.parseColor("#E0E0E0")); + + mPaintProgressColor = new Paint(Paint.ANTI_ALIAS_FLAG); + mPaintProgressColor.setStrokeWidth(60); + mPaintProgressColor.setColor(Color.parseColor("#305DFD")); + mPaintProgressColor.setStyle(Paint.Style.STROKE); + mPaintProgressColor.setStrokeCap(Paint.Cap.ROUND); + mPaintProgressColor.setShadowLayer(6, -5, 5, Color.parseColor("#C2C9E3")); + + + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int mWidth = resolveSize(200, widthMeasureSpec); + int mHeight = resolveSize(600, heightMeasureSpec); + setMeasuredDimension( + Math.max(getSuggestedMinimumWidth(), + resolveSize(mWidth, + widthMeasureSpec)), + Math.max(getSuggestedMinimumHeight(), + resolveSize(mHeight, + heightMeasureSpec))); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + int width = getWidth(); + int i = width - left * 2; + mRectF.set(left, top, i + left, i + top); + //绘制第一个环形背景 + mPath.arcTo(mRectF, 180, 180); + canvas.drawPath(mPath, mPaintProgress); + + //添加进度 + addProgress(canvas); + //绘制文字 + drawText(canvas); + } + + private void drawText(Canvas canvas) { + String percent = "70%"; + } + + + private void addProgress(Canvas canvas) { + Path mPathProgress = new Path(); + mPathProgress.reset(); + //70%的进度 + float progress = 0.7f; + float sweepAngle = progress * 180; + mPathProgress.arcTo(mRectF, 180, sweepAngle); + canvas.drawPath(mPathProgress, mPaintProgressColor); + } + + + //Android Canvas沿着Path绘制文字 +// private void addTextPath(Canvas canvas) { +// +// int startAngle = 135; //开始角度 +// int sweepAngle = 45; //总共 270度角,分6次则为 45度 +// +// String[] content = {"0-10W", "10-20W", "20-30W", "30-40W", "40-50W", "50W+"}; +// Paint mTextPaint = new Paint(); +// mTextPaint.setColor(Color.BLACK); +// mTextPaint.setTextSize(40); +// Path path = null; +// +// +// for (int i = 0; i < 6; i++) { +// path = new Path(); +// path.addArc(mRectF2, startAngle, sweepAngle); +// float textLength = mTextPaint.measureText(content[i]);//获得字体长度 +// float hOffset = (float) (mDiam2 * Math.PI * (sweepAngle * 1.0 / 360) / 2 - textLength / 2);//The distance along the path +// float vOffset = (float) (mDiam2 / 2 / 6); //垂直路径方向上的偏移 +// canvas.drawTextOnPath(content[i], path, hOffset, vOffset, mTextPaint); +// +//// Log.d("Circle", "hOffset:" + hOffset + " vOffset: " + vOffset); +// startAngle += sweepAngle; +// } +// +// } +// +// +// private void addKeDu1(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 45; +// //刻度直径 +// int radius = 800 - 40; +// int length = 80; //刻度线长度 +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY + py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY + py_a2; +// +// //绘制粗刻度线 +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// //绘制细刻度线 +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = 45 - (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY + py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY + py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu2(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 0; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY + py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY + py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu3(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 45; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu4(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 90; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu5(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 135; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu6(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 180; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addEndKeDu(Canvas canvas) { +// int pointX = 500; +// int pointY = 500; +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 225; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// } +} diff --git a/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml b/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml index 0ede883..2c51c0d 100644 --- a/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml +++ b/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml @@ -374,6 +374,7 @@ android:layout_width="match_parent" android:layout_height="320dp" android:layout_marginTop="10dp" /> +