diff --git a/.idea/misc.xml b/.idea/misc.xml
index 738d045..76827e6 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -65,7 +65,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 738d045..76827e6 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -65,7 +65,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
index a9a5332..18a314c 100644
--- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.content.Context;
+import android.os.CountDownTimer;
import android.view.View;
import androidx.core.content.ContextCompat;
@@ -10,18 +11,24 @@
import com.casic.dcms.databinding.ActivityTrendAnalysisBinding;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.widgets.CircleProgressBar;
import com.casic.dcms.widgets.DetailsMarkerView;
-import com.github.mikephil.charting.components.Description;
+import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
+import com.github.mikephil.charting.data.BarData;
+import com.github.mikephil.charting.data.BarDataSet;
+import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
+import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
import com.jzxiang.pickerview.TimePickerDialog;
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -29,10 +36,14 @@
public class TrendAnalysisActivity extends AndroidxBaseActivity {
+ private static final String TAG = "TrendAnalysisActivity";
+ private static final DecimalFormat decimalFormat = new DecimalFormat("##0");
+ private static final String[] labelName = {"普通", "快速", "三包"};
private final Context context = TrendAnalysisActivity.this;
private final List totalEntries = new ArrayList<>();
private final List handleEntries = new ArrayList<>();
private final List lineDataSets = new ArrayList<>();
+ private final List barEntries = new ArrayList<>();
@Override
protected void setupTopBarLayout() {
@@ -44,8 +55,17 @@
protected void initData() {
//默认显示当前月的分析数据
viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
- viewBinding.wholeCircleProgressBar.setCurrentValue(80);
+ //完成率总览
+ bindProgressAnimation(viewBinding.wholeProgressBar, 80);
//初始化折线图
+ initLineChart();
+ //初始化柱状图
+ initBarChart();
+ //案卷核实率
+ bindProgressAnimation(viewBinding.verifyProgressBar, 50);
+ }
+
+ private void initLineChart() {
viewBinding.lineChart.setDrawGridBackground(false);
viewBinding.lineChart.setDrawBorders(false);
Calendar calendar = Calendar.getInstance();
@@ -62,6 +82,8 @@
//设置图表右边的y轴禁用
rightAxis.setEnabled(false);
YAxis leftAxis = viewBinding.lineChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ viewBinding.lineChart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = viewBinding.lineChart.getXAxis();
xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
@@ -73,10 +95,14 @@
xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
xAxis.setGranularity(1f);//禁止放大后x轴标签重绘
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.lineChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
//去掉描述
- Description description = new Description();
- description.setEnabled(false);
- viewBinding.lineChart.setDescription(description);
+ viewBinding.lineChart.getDescription().setEnabled(false);
+ //设置图例
+ Legend legend = viewBinding.lineChart.getLegend();
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
//添加自定义Marker
DetailsMarkerView detailsMarkerView = new DetailsMarkerView(this);
detailsMarkerView.setChartView(viewBinding.lineChart);
@@ -98,6 +124,54 @@
viewBinding.lineChart.invalidate();
}
+ private void initBarChart() {
+ viewBinding.barChart.setDrawGridBackground(false);
+ viewBinding.barChart.setDrawBorders(false);
+ viewBinding.barChart.setScaleEnabled(false);
+ //去掉描述
+ viewBinding.barChart.getDescription().setEnabled(false);
+ //去掉图例
+ viewBinding.barChart.getLegend().setEnabled(false);
+ //TODO 这是模拟数据
+ for (int i = 0; i < 3; i++) {
+ barEntries.add(new BarEntry(i, new Random().nextInt(300)));
+ }
+ XAxis xAxis = viewBinding.barChart.getXAxis();
+ xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
+ xAxis.setLabelCount(3); // 设置x轴上的标签个数
+ xAxis.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return labelName[(int) value];
+ }
+ });
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.barChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
+ //设置样式
+ YAxis rightAxis = viewBinding.barChart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = viewBinding.barChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ //绑定数据
+ BarDataSet barDataSet = new BarDataSet(barEntries, "");
+ barDataSet.setColor(ContextCompat.getColor(context, R.color.mainThemeColor));
+ barDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+ BarData barData = new BarData(barDataSet);
+ barData.setBarWidth(0.5f);
+ viewBinding.barChart.setData(barData);
+ viewBinding.barChart.invalidate();
+ }
+
@Override
protected void initEvent() {
viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
@@ -121,4 +195,19 @@
}
});
}
+
+ private void bindProgressAnimation(CircleProgressBar bar, int value) {
+ new CountDownTimer(value * 10L, 10) {
+
+ @Override
+ public void onTick(long l) {
+ bar.setCurrentValue(value - (int) (l / 10));
+ }
+
+ @Override
+ public void onFinish() {
+ bar.setCurrentValue(value);
+ }
+ }.start();
+ }
}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 738d045..76827e6 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -65,7 +65,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
index a9a5332..18a314c 100644
--- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.content.Context;
+import android.os.CountDownTimer;
import android.view.View;
import androidx.core.content.ContextCompat;
@@ -10,18 +11,24 @@
import com.casic.dcms.databinding.ActivityTrendAnalysisBinding;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.widgets.CircleProgressBar;
import com.casic.dcms.widgets.DetailsMarkerView;
-import com.github.mikephil.charting.components.Description;
+import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
+import com.github.mikephil.charting.data.BarData;
+import com.github.mikephil.charting.data.BarDataSet;
+import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
+import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
import com.jzxiang.pickerview.TimePickerDialog;
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -29,10 +36,14 @@
public class TrendAnalysisActivity extends AndroidxBaseActivity {
+ private static final String TAG = "TrendAnalysisActivity";
+ private static final DecimalFormat decimalFormat = new DecimalFormat("##0");
+ private static final String[] labelName = {"普通", "快速", "三包"};
private final Context context = TrendAnalysisActivity.this;
private final List totalEntries = new ArrayList<>();
private final List handleEntries = new ArrayList<>();
private final List lineDataSets = new ArrayList<>();
+ private final List barEntries = new ArrayList<>();
@Override
protected void setupTopBarLayout() {
@@ -44,8 +55,17 @@
protected void initData() {
//默认显示当前月的分析数据
viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
- viewBinding.wholeCircleProgressBar.setCurrentValue(80);
+ //完成率总览
+ bindProgressAnimation(viewBinding.wholeProgressBar, 80);
//初始化折线图
+ initLineChart();
+ //初始化柱状图
+ initBarChart();
+ //案卷核实率
+ bindProgressAnimation(viewBinding.verifyProgressBar, 50);
+ }
+
+ private void initLineChart() {
viewBinding.lineChart.setDrawGridBackground(false);
viewBinding.lineChart.setDrawBorders(false);
Calendar calendar = Calendar.getInstance();
@@ -62,6 +82,8 @@
//设置图表右边的y轴禁用
rightAxis.setEnabled(false);
YAxis leftAxis = viewBinding.lineChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ viewBinding.lineChart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = viewBinding.lineChart.getXAxis();
xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
@@ -73,10 +95,14 @@
xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
xAxis.setGranularity(1f);//禁止放大后x轴标签重绘
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.lineChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
//去掉描述
- Description description = new Description();
- description.setEnabled(false);
- viewBinding.lineChart.setDescription(description);
+ viewBinding.lineChart.getDescription().setEnabled(false);
+ //设置图例
+ Legend legend = viewBinding.lineChart.getLegend();
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
//添加自定义Marker
DetailsMarkerView detailsMarkerView = new DetailsMarkerView(this);
detailsMarkerView.setChartView(viewBinding.lineChart);
@@ -98,6 +124,54 @@
viewBinding.lineChart.invalidate();
}
+ private void initBarChart() {
+ viewBinding.barChart.setDrawGridBackground(false);
+ viewBinding.barChart.setDrawBorders(false);
+ viewBinding.barChart.setScaleEnabled(false);
+ //去掉描述
+ viewBinding.barChart.getDescription().setEnabled(false);
+ //去掉图例
+ viewBinding.barChart.getLegend().setEnabled(false);
+ //TODO 这是模拟数据
+ for (int i = 0; i < 3; i++) {
+ barEntries.add(new BarEntry(i, new Random().nextInt(300)));
+ }
+ XAxis xAxis = viewBinding.barChart.getXAxis();
+ xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
+ xAxis.setLabelCount(3); // 设置x轴上的标签个数
+ xAxis.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return labelName[(int) value];
+ }
+ });
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.barChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
+ //设置样式
+ YAxis rightAxis = viewBinding.barChart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = viewBinding.barChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ //绑定数据
+ BarDataSet barDataSet = new BarDataSet(barEntries, "");
+ barDataSet.setColor(ContextCompat.getColor(context, R.color.mainThemeColor));
+ barDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+ BarData barData = new BarData(barDataSet);
+ barData.setBarWidth(0.5f);
+ viewBinding.barChart.setData(barData);
+ viewBinding.barChart.invalidate();
+ }
+
@Override
protected void initEvent() {
viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
@@ -121,4 +195,19 @@
}
});
}
+
+ private void bindProgressAnimation(CircleProgressBar bar, int value) {
+ new CountDownTimer(value * 10L, 10) {
+
+ @Override
+ public void onTick(long l) {
+ bar.setCurrentValue(value - (int) (l / 10));
+ }
+
+ @Override
+ public void onFinish() {
+ bar.setCurrentValue(value);
+ }
+ }.start();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java b/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
index 752a572..0f516bc 100644
--- a/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
+++ b/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
@@ -7,24 +7,18 @@
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.os.Handler;
-import android.os.Message;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-import java.lang.ref.WeakReference;
-
public class CircleProgressBar extends View {
- private static WeakReferenceHandler weakReferenceHandler;
private final Context context;
private final int backgroundColor;
private final int foregroundColor;
@@ -56,7 +50,6 @@
a.recycle();
//初始化画笔
initPaint();
- weakReferenceHandler = new WeakReferenceHandler(this);
}
private void initPaint() {
@@ -163,36 +156,6 @@
} else {
this.currentValue = value + "%";
}
- //进度条缓慢前进
- new Thread(() -> {
- for (int i = 0; i < value; i++) {
- Message message = weakReferenceHandler.obtainMessage();
- message.arg1 = i;
- message.what = 20220130;
- weakReferenceHandler.handleMessage(message);
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
-
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(CircleProgressBar view) {
- reference = new WeakReference<>(view);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CircleProgressBar bar = reference.get();
- if (msg.what == 20220130) {
- bar.sweepAngle = (float) msg.arg1 * 360 / 100;
- }
- }
+ sweepAngle = (float) value * 360 / 100;
}
}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 738d045..76827e6 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -65,7 +65,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
index a9a5332..18a314c 100644
--- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui;
import android.content.Context;
+import android.os.CountDownTimer;
import android.view.View;
import androidx.core.content.ContextCompat;
@@ -10,18 +11,24 @@
import com.casic.dcms.databinding.ActivityTrendAnalysisBinding;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.widgets.CircleProgressBar;
import com.casic.dcms.widgets.DetailsMarkerView;
-import com.github.mikephil.charting.components.Description;
+import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
+import com.github.mikephil.charting.data.BarData;
+import com.github.mikephil.charting.data.BarDataSet;
+import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
+import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
import com.jzxiang.pickerview.TimePickerDialog;
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -29,10 +36,14 @@
public class TrendAnalysisActivity extends AndroidxBaseActivity {
+ private static final String TAG = "TrendAnalysisActivity";
+ private static final DecimalFormat decimalFormat = new DecimalFormat("##0");
+ private static final String[] labelName = {"普通", "快速", "三包"};
private final Context context = TrendAnalysisActivity.this;
private final List totalEntries = new ArrayList<>();
private final List handleEntries = new ArrayList<>();
private final List lineDataSets = new ArrayList<>();
+ private final List barEntries = new ArrayList<>();
@Override
protected void setupTopBarLayout() {
@@ -44,8 +55,17 @@
protected void initData() {
//默认显示当前月的分析数据
viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
- viewBinding.wholeCircleProgressBar.setCurrentValue(80);
+ //完成率总览
+ bindProgressAnimation(viewBinding.wholeProgressBar, 80);
//初始化折线图
+ initLineChart();
+ //初始化柱状图
+ initBarChart();
+ //案卷核实率
+ bindProgressAnimation(viewBinding.verifyProgressBar, 50);
+ }
+
+ private void initLineChart() {
viewBinding.lineChart.setDrawGridBackground(false);
viewBinding.lineChart.setDrawBorders(false);
Calendar calendar = Calendar.getInstance();
@@ -62,6 +82,8 @@
//设置图表右边的y轴禁用
rightAxis.setEnabled(false);
YAxis leftAxis = viewBinding.lineChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ viewBinding.lineChart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = viewBinding.lineChart.getXAxis();
xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
@@ -73,10 +95,14 @@
xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
xAxis.setGranularity(1f);//禁止放大后x轴标签重绘
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.lineChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
//去掉描述
- Description description = new Description();
- description.setEnabled(false);
- viewBinding.lineChart.setDescription(description);
+ viewBinding.lineChart.getDescription().setEnabled(false);
+ //设置图例
+ Legend legend = viewBinding.lineChart.getLegend();
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
//添加自定义Marker
DetailsMarkerView detailsMarkerView = new DetailsMarkerView(this);
detailsMarkerView.setChartView(viewBinding.lineChart);
@@ -98,6 +124,54 @@
viewBinding.lineChart.invalidate();
}
+ private void initBarChart() {
+ viewBinding.barChart.setDrawGridBackground(false);
+ viewBinding.barChart.setDrawBorders(false);
+ viewBinding.barChart.setScaleEnabled(false);
+ //去掉描述
+ viewBinding.barChart.getDescription().setEnabled(false);
+ //去掉图例
+ viewBinding.barChart.getLegend().setEnabled(false);
+ //TODO 这是模拟数据
+ for (int i = 0; i < 3; i++) {
+ barEntries.add(new BarEntry(i, new Random().nextInt(300)));
+ }
+ XAxis xAxis = viewBinding.barChart.getXAxis();
+ xAxis.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
+ xAxis.setLabelCount(3); // 设置x轴上的标签个数
+ xAxis.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return labelName[(int) value];
+ }
+ });
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ viewBinding.barChart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
+ //设置样式
+ YAxis rightAxis = viewBinding.barChart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = viewBinding.barChart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ //绑定数据
+ BarDataSet barDataSet = new BarDataSet(barEntries, "");
+ barDataSet.setColor(ContextCompat.getColor(context, R.color.mainThemeColor));
+ barDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+ BarData barData = new BarData(barDataSet);
+ barData.setBarWidth(0.5f);
+ viewBinding.barChart.setData(barData);
+ viewBinding.barChart.invalidate();
+ }
+
@Override
protected void initEvent() {
viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
@@ -121,4 +195,19 @@
}
});
}
+
+ private void bindProgressAnimation(CircleProgressBar bar, int value) {
+ new CountDownTimer(value * 10L, 10) {
+
+ @Override
+ public void onTick(long l) {
+ bar.setCurrentValue(value - (int) (l / 10));
+ }
+
+ @Override
+ public void onFinish() {
+ bar.setCurrentValue(value);
+ }
+ }.start();
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java b/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
index 752a572..0f516bc 100644
--- a/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
+++ b/app/src/main/java/com/casic/dcms/widgets/CircleProgressBar.java
@@ -7,24 +7,18 @@
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.os.Handler;
-import android.os.Message;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import com.casic.dcms.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-import java.lang.ref.WeakReference;
-
public class CircleProgressBar extends View {
- private static WeakReferenceHandler weakReferenceHandler;
private final Context context;
private final int backgroundColor;
private final int foregroundColor;
@@ -56,7 +50,6 @@
a.recycle();
//初始化画笔
initPaint();
- weakReferenceHandler = new WeakReferenceHandler(this);
}
private void initPaint() {
@@ -163,36 +156,6 @@
} else {
this.currentValue = value + "%";
}
- //进度条缓慢前进
- new Thread(() -> {
- for (int i = 0; i < value; i++) {
- Message message = weakReferenceHandler.obtainMessage();
- message.arg1 = i;
- message.what = 20220130;
- weakReferenceHandler.handleMessage(message);
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
-
- private static class WeakReferenceHandler extends Handler {
- private final WeakReference reference;
-
- private WeakReferenceHandler(CircleProgressBar view) {
- reference = new WeakReference<>(view);
- }
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- CircleProgressBar bar = reference.get();
- if (msg.what == 20220130) {
- bar.sweepAngle = (float) msg.arg1 * 360 / 100;
- }
- }
+ sweepAngle = (float) value * 360 / 100;
}
}
diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml
index 7adcf2d..cde61b5 100644
--- a/app/src/main/res/layout/activity_trend_analysis.xml
+++ b/app/src/main/res/layout/activity_trend_analysis.xml
@@ -17,12 +17,12 @@
+ android:orientation="vertical"
+ android:padding="@dimen/padding_10dp">
@@ -34,7 +34,7 @@
android:padding="@dimen/padding_10dp">
@@ -150,6 +149,84 @@
android:layout_height="180dp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file