From 4d51724ee8a7d52f29303e9a63c34122eeab9b73 Mon Sep 17 00:00:00 2001 From: 姚旭斌 <15805828761@163.com> Date: Thu, 12 Apr 2018 11:33:51 +0800 Subject: [PATCH] no message --- .idea/modules.xml | 2 +- app/libs/processor.jar | Bin 5681 -> 0 bytes app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java | 8 ++++---- app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java | 30 +++++++++++------------------- app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportSceneFragment.java | 7 ++++++- mvpsdk/src/main/java/com/share/mvpsdk/utils/ValueUtils.java | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------- mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/ChartView.java | 42 ++++++++++++++++++++++++------------------ mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/Chart.java | 2 +- mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/DrawData.java | 8 ++++---- mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/InputData.java | 4 ++-- 10 files changed, 108 insertions(+), 87 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index 1e51467..62d4a46 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,8 +4,8 @@ - + diff --git a/app/libs/processor.jar b/app/libs/processor.jar index bb4f539..46b1996 100644 Binary files a/app/libs/processor.jar and b/app/libs/processor.jar differ diff --git a/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java b/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java index 057c471..57e46b7 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java +++ b/app/src/main/java/com/shunzhi/parent/ui/activity/report/ReportSceneActivity.java @@ -20,9 +20,9 @@ import com.shunzhi.parent.ui.fragment.report.ReportSceneFragment; */ public class ReportSceneActivity extends BaseMVPCompatActivity implements View.OnClickListener { - public static void getInstance(Context context,int screenID) { + public static void getInstance(Context context,int sceneID) { Intent intent = new Intent(context, ReportSceneActivity.class); - intent.putExtra("screenID",screenID); + intent.putExtra("sceneID",sceneID); context.startActivity(intent); } @@ -54,9 +54,9 @@ public class ReportSceneActivity extends BaseMVPCompatActivity implements View.O center_title = findViewById(R.id.center_title); center_title.setText("场景详情"); ivBack.setOnClickListener(this); - int screenID = getIntent().getIntExtra("screenID",0); + int sceneID = getIntent().getIntExtra("sceneID",0); Bundle bundle=new Bundle(); - bundle.putInt("screenID",screenID); + bundle.putInt("sceneID",sceneID); reportSceneFragment.setArguments(bundle); fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.frame_scene, reportSceneFragment) diff --git a/app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java b/app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java index b8609d3..5ac9065 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java +++ b/app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java @@ -4,33 +4,20 @@ package com.shunzhi.parent.ui.fragment; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; -import com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView; -import com.prolificinteractive.materialcalendarview.CalendarDay; -import com.prolificinteractive.materialcalendarview.MaterialCalendarView; -import com.share.mvpsdk.base.BasePresenter; import com.share.mvpsdk.base.fragment.BaseCompatFragment; -import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment; -import com.share.mvpsdk.utils.ToastUtils; import com.shunzhi.parent.R; -import com.shunzhi.parent.adapter.ReportAdapter; -import com.shunzhi.parent.bean.ReportBean; -import com.shunzhi.parent.contract.report.ReportContract; import com.shunzhi.parent.popu.ShaiXuanPop; -import com.shunzhi.parent.presenter.report.ReportPresenter; +import com.shunzhi.parent.ui.activity.report.ReportSceneActivity; import com.shunzhi.parent.ui.fragment.report.ChengZhangFragment; -import com.shunzhi.parent.views.CustomLinearLayoutManager; import java.util.List; @@ -45,7 +32,7 @@ public class ReportFragment extends BaseCompatFragment implements View.OnClickLi ChengZhangFragment chengZhangFragment1 = null, chengZhangFragment2 = null;//成长、报告页面 - ShaiXuanPop shaiXuanPop=null; + ShaiXuanPop shaiXuanPop = null; @Override public int getLayoutId() { @@ -60,6 +47,9 @@ public class ReportFragment extends BaseCompatFragment implements View.OnClickLi tvNoData = view.findViewById(R.id.tvNoData); tabLayout = view.findViewById(R.id.tabLayout); + + + tvNoData.setOnClickListener(this); tvShaiXuan.setOnClickListener(this); myFragmentAdapter = new MyFragmentAdapter(getChildFragmentManager()); @@ -77,7 +67,7 @@ public class ReportFragment extends BaseCompatFragment implements View.OnClickLi @Override public void onPageSelected(int position) { - if (position==0)tvShaiXuan.setVisibility(View.GONE); + if (position == 0) tvShaiXuan.setVisibility(View.GONE); else tvShaiXuan.setVisibility(View.VISIBLE); } @@ -91,15 +81,17 @@ public class ReportFragment extends BaseCompatFragment implements View.OnClickLi @Override public void onClick(View view) { - switch (view.getId()){ + switch (view.getId()) { case R.id.tvShaiXuan: if (null == shaiXuanPop) shaiXuanPop = new ShaiXuanPop(getActivity()); chengZhangFragment2.showShaixuan(handler); break; + case R.id.tvNoData: + ReportSceneActivity.getInstance(getActivity(), 3); } } - Handler handler=new Handler(){ + Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); @@ -111,7 +103,7 @@ public class ReportFragment extends BaseCompatFragment implements View.OnClickLi @Override public void onDestroy() { super.onDestroy(); - if (handler!=null)handler=null; + if (handler != null) handler = null; } private class MyFragmentAdapter extends FragmentPagerAdapter { diff --git a/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportSceneFragment.java b/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportSceneFragment.java index 943f842..f2ee2b6 100644 --- a/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportSceneFragment.java +++ b/app/src/main/java/com/shunzhi/parent/ui/fragment/report/ReportSceneFragment.java @@ -1,12 +1,12 @@ package com.shunzhi.parent.ui.fragment.report; -import android.annotation.SuppressLint; import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.View; import android.widget.TextView; @@ -77,6 +77,11 @@ public class ReportSceneFragment extends BaseMVPCompatFragment list1, List list2, List list3) { + Log.e("11111", "1111----===="); + if(list1==null||list2==null||list3==null) { + Log.e("11111", "----===="); + return ; + } chartView.setColors(R.color.textColor, R.color.huodong_blue, R.color.gray); List inputDataList1 = new ArrayList<>(); List inputDataList2 = new ArrayList<>(); diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/utils/ValueUtils.java b/mvpsdk/src/main/java/com/share/mvpsdk/utils/ValueUtils.java index 8897335..d5b0682 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/utils/ValueUtils.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/utils/ValueUtils.java @@ -3,8 +3,6 @@ package com.share.mvpsdk.utils; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; -import android.util.Log; - import com.share.mvpsdk.view.chartview.data.Chart; import com.share.mvpsdk.view.chartview.data.ChartPath; @@ -14,12 +12,11 @@ import com.share.mvpsdk.view.chartview.data.InputData; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; -import java.util.concurrent.TimeUnit; public class ValueUtils { - public static long getCorrectedMaxValue(long maxValue) { - for (long value = maxValue; value >= Chart.CHART_PART_VALUE; value--) { + public static float getCorrectedMaxValue(float maxValue) { + for (float value = maxValue; value >= Chart.CHART_PART_VALUE; value--) { if (isRightValue(value)) { return value; } @@ -28,8 +25,8 @@ public class ValueUtils { return maxValue; } - public static long max(@Nullable List dataList) { - long maxValue = 0; + public static float max(@Nullable List dataList) { + float maxValue = 0; if (dataList == null || dataList.isEmpty()) { return maxValue; @@ -46,29 +43,42 @@ public class ValueUtils { return maxValue; } - private static long maxOne(List dataList) { - long maxValue = 0; + private static long getMax(long max) { + if (max < 10) { + max = 10; + } else if (max / 10 < 10) { + max = (max / 10 + 1) * 10; + } else if (max / 100 < 10) { + max = (max / 100 + 1) * 100; + } else if (max / 1000 < 10) { + max = (max / 1000 + 1) * 1000; + } + return max; + } + + private static float maxOne(List dataList) { + float maxValue = 0; if (dataList == null || dataList.isEmpty()) { return maxValue; } - for (InputData data : dataList) { - if (data.valueY > maxValue) { - maxValue = data.valueY; - } + for (InputData data : dataList) { + if (data.valueY > maxValue) { + maxValue = data.valueY; } + } return maxValue; } - private static boolean isRightValue(long value) { - long valueResidual = value % Chart.CHART_PART_VALUE; + private static boolean isRightValue(float value) { + float valueResidual = value % Chart.CHART_PART_VALUE; return valueResidual == 0; } @NotificationCompat.NotificationVisibility public static List getDrawData(@Nullable Chart chart) { - if (chart == null || chart.getInputDataList().isEmpty()) { + if (chart == null || chart.getInputDataList()==null||chart.getInputDataList().isEmpty()) { return new ArrayList<>(); } @@ -78,7 +88,7 @@ public class ValueUtils { } @NotificationCompat.NotificationVisibility - public static List getDrawDatas(@Nullable List inputDataList,@NonNull Chart chart) { + public static List getDrawDatas(@Nullable List inputDataList, @NonNull Chart chart) { return createDrawDataList(chart, createValueList(inputDataList)); } @@ -111,13 +121,22 @@ public class ValueUtils { iterator.next(); } } - static long topValue=0; + + public static float topValue = 0.00f; + + public static void calMax(List chartPathList) { + + for (int i = 0; i < chartPathList.size(); i++) { + createValueList(chartPathList.get(i).inputDataList); + } + } + private static List createValueList(@NonNull List dataList) { List valueList = new ArrayList<>(); - topValue=topValue > ValueUtils.maxOne(dataList)?topValue:ValueUtils.maxOne(dataList);//取最大值 + topValue = topValue > ValueUtils.maxOne(dataList) ? topValue : ValueUtils.maxOne(dataList);//取最大值 for (InputData data : dataList) { - float value = (float) data.valueY / topValue; + float value = data.valueY / topValue; valueList.add(value); } @@ -142,8 +161,8 @@ public class ValueUtils { } float value = valueList.get(position); - int startX = getCoordinateX(chart, position); - int startY = getCoordinateY(chart, value); + float startX = getCoordinateX(chart, position); + float startY = getCoordinateY(chart, value); drawData.startX = startX; drawData.startY = startY; // drawData.setStartX(startX); @@ -151,8 +170,8 @@ public class ValueUtils { int nextPosition = position + 1; if (nextPosition < valueList.size()) { float nextValue = valueList.get(nextPosition); - int stopX = getCoordinateX(chart, nextPosition); - int stopY = getCoordinateY(chart, nextValue); + float stopX = getCoordinateX(chart, nextPosition); + float stopY = getCoordinateY(chart, nextValue); // drawData.setStopX(stopX); // drawData.setStopY(stopY); @@ -165,13 +184,13 @@ public class ValueUtils { } @SuppressWarnings("UnnecessaryLocalVariable") - private static int getCoordinateX(@NonNull Chart chart, int index) { - int width = chart.width; - int titleWidth = chart.titleWidth; + private static float getCoordinateX(@NonNull Chart chart, int index) { + float width = chart.width; + float titleWidth = chart.titleWidth; - int widthCorrected = width - titleWidth; - int partWidth = widthCorrected / (Chart.MAX_ITEMS_COUNT - 1); - int coordinate = titleWidth + (partWidth * index); + float widthCorrected = width - titleWidth; + float partWidth = widthCorrected / (Chart.MAX_ITEMS_COUNT - 1); + float coordinate = titleWidth + (partWidth * index); if (coordinate < 0) { coordinate = 0; @@ -184,13 +203,11 @@ public class ValueUtils { } @SuppressWarnings("UnnecessaryLocalVariable") - private static int getCoordinateY(@NonNull Chart chart, float value) { - int height = chart.height - chart.padding - chart.textSize; - int heightOffset = chart.heightOffset; - - int heightCorrected = height - heightOffset; - int coordinate = (int) (heightCorrected - (heightCorrected * value)); - + private static float getCoordinateY(@NonNull Chart chart, float value) { + float height = chart.height - chart.padding - chart.textSize; + float heightOffset = chart.heightOffset; + float heightCorrected = height - heightOffset; + float coordinate = (heightCorrected - (heightCorrected * value)); if (coordinate < 0) { coordinate = 0; @@ -201,4 +218,5 @@ public class ValueUtils { coordinate += heightOffset; return coordinate; } + } diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/ChartView.java b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/ChartView.java index 97c8c5a..50bf44e 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/ChartView.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/ChartView.java @@ -2,13 +2,9 @@ package com.share.mvpsdk.view.chartview; import android.content.Context; import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.DashPathEffect; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PathDashPathEffect; -import android.graphics.RectF; -import android.graphics.Shader; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; @@ -16,13 +12,13 @@ import android.util.Log; import android.view.View; import com.share.mvpsdk.R; -import com.share.mvpsdk.utils.DateUtils; import com.share.mvpsdk.utils.ValueUtils; import com.share.mvpsdk.view.chartview.data.Chart; import com.share.mvpsdk.view.chartview.data.ChartPath; import com.share.mvpsdk.view.chartview.data.DrawData; import com.share.mvpsdk.view.chartview.data.InputData; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -97,7 +93,11 @@ public class ChartView extends View { chart.setInputDataList(inputData); chart.titleWidth = getTitleWidth(); invalidate(); + } + public void setDrawData(){ +// chart.setDrawDataList(ValueUtils.getDrawData(chart)); + invalidate(); } /** @@ -163,11 +163,11 @@ public class ChartView extends View { return; } - long maxValue = ValueUtils.max(chartPathList); - long correctedMaxValue = ValueUtils.getCorrectedMaxValue(maxValue); + float maxValue = ValueUtils.max(chartPathList); + float correctedMaxValue = ValueUtils.getCorrectedMaxValue(maxValue); float value = (float) correctedMaxValue / maxValue; - long heightOffset = chart.heightOffset; + float heightOffset = chart.heightOffset; int padding = chart.padding; int textSize = chart.textSize; int titleWidth = chart.titleWidth; @@ -177,7 +177,7 @@ public class ChartView extends View { float chartPartHeight = ((height - heightOffset) * value) / Chart.CHART_PARTS; float currHeight = height; - int currTitle = 0; + float currTitle = 0.0f; for (int i = 0; i <= Chart.CHART_PARTS; i++) { float titleY = currHeight; @@ -192,12 +192,13 @@ public class ChartView extends View { if (i > 0) { // canvas.drawLine(titleWidth, currHeight, width, currHeight, frameInternalPaint); //横向间隔线 - canvas.drawLine(titleWidth-5,titleY-textSize/2,width,titleY-textSize/2,textPaint); + textPaint.setColor(0xFFE7E5E7); + canvas.drawLine(titleWidth - 5, titleY - textSize / 2, width, titleY - textSize / 2, textPaint); } - - String title = String.valueOf(currTitle); - canvas.drawText(title, padding, titleY, textPaint); + DecimalFormat decimalFormat = new DecimalFormat("0.0"); + String title = String.valueOf(decimalFormat.format(currTitle)); textPaint.setColor(getResources().getColor(R.color.gray)); + canvas.drawText(title, padding - textSize / 2, titleY, textPaint); currHeight -= chartPartHeight; currTitle += correctedMaxValue / Chart.CHART_PARTS; @@ -205,11 +206,15 @@ public class ChartView extends View { } private void drawChartHorizontal(@NonNull Canvas canvas) { + if (null!=chartPathList){ + ValueUtils.calMax(chartPathList); for (int j = 0; j < chartPathList.size(); j++) { chagerColor(j); List inputDataList = chart.getInputDataList(); // List drawDataList = chart.getDrawDataList(); List drawDataList = ValueUtils.getDrawDatas(chartPathList.get(j).inputDataList, chart); +// Log.e("111111", "chartPathList.get(j).inputDataList----===="+chartPathList.get(j).inputDataList); +// Log.e("111111", "drawDataList----===="+drawDataList); if (inputDataList == null || inputDataList.isEmpty() || drawDataList == null || drawDataList.isEmpty()) { return; } @@ -219,7 +224,7 @@ public class ChartView extends View { // String date = DateUtils.format(inputData.valueX); String date = inputData.valueX; int dateWidth = (int) axisPaint.measureText(date); - int x; + float x; if (drawDataList.size() > i) { DrawData drawData = drawDataList.get(i); x = drawData.startX; @@ -246,7 +251,7 @@ public class ChartView extends View { //画圆点 canvas.drawCircle(startX, startY, 10, valuesPaint); - + Log.e("11111", "startX----===="+startX+"startY="+startY); //点之间的连线 if (i < drawDataList.size() - 1) { canvas.drawLine(startX, startY, drawDataList.get(i + 1).startX - chart.padding - chart.textSize, drawDataList.get(i + 1).startY, valuesPaint); @@ -257,10 +262,11 @@ public class ChartView extends View { } } } + } } private void chagerColor(int j) { - switch (j){ + switch (j) { case 0: valuesPaint.setColor(getResources().getColor(R.color.theme_day_blue)); break; @@ -280,7 +286,7 @@ public class ChartView extends View { int height = chart.height - textSize - padding; int width = chart.width - textSize - padding; - int titleWidth = chart.titleWidth-5; + int titleWidth = chart.titleWidth - 5; int heightOffset = chart.heightOffset; canvas.drawLine(titleWidth, heightOffset, titleWidth, height, axisPaint); @@ -292,7 +298,7 @@ public class ChartView extends View { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = MeasureSpec.getSize(widthMeasureSpec); - int height = MeasureSpec.getSize(heightMeasureSpec) / 2; + int height = MeasureSpec.getSize(heightMeasureSpec); chart.width = width; chart.height = height; setMeasuredDimension(width, height); diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/Chart.java b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/Chart.java index 0e53214..efa0a9a 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/Chart.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/Chart.java @@ -9,7 +9,7 @@ import java.util.List; public class Chart { - public static final int CHART_PARTS = 5; + public static final float CHART_PARTS = 5.0f; public static final int MAX_ITEMS_COUNT = 7; public static final int CHART_PART_VALUE = 10; public static final int TEXT_SIZE_OFFSET = 10; diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/DrawData.java b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/DrawData.java index 6ffa125..5392aa9 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/DrawData.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/DrawData.java @@ -6,11 +6,11 @@ package com.share.mvpsdk.view.chartview.data; public class DrawData { - public int startX; - public int startY; + public float startX; + public float startY; - public int stopX; - public int stopY; + public float stopX; + public float stopY; @Override public String toString() { diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/InputData.java b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/InputData.java index 500ccab..fb389a9 100644 --- a/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/InputData.java +++ b/mvpsdk/src/main/java/com/share/mvpsdk/view/chartview/data/InputData.java @@ -9,9 +9,9 @@ public class InputData { public String valueX; - public long valueY; + public float valueY; - public InputData(String valueX,long valueY){ + public InputData(String valueX,float valueY){ this.valueX=valueX; this.valueY=valueY; } -- libgit2 0.21.0