package com.xxmassdeveloper.mpchartexample;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.github.mikephil.charting.data.RadarEntry;
import com.xxmassdeveloper.mpchartexample.manage.JsonUtils;
import com.xxmassdeveloper.mpchartexample.manage.RadarBean;
import com.xxmassdeveloper.mpchartexample.view.MyRadarChart;
import java.util.ArrayList;
public class MyRadarActivity extends FragmentActivity {
String v = "{\"msg\":\"操作成功\",\"data\":[{\"thisAvg\":1.87,\"name\":\"保亭\",\"lastAvg\":4.70,\"sumPeople\":1262,\"lastPeople\":800}," +
"{\"thisAvg\":5.36,\"name\":\"琼中\",\"lastAvg\":2.35,\"sumPeople\":3823,\"lastPeople\":3341},{\"thisAvg\":4.97," +
"\"name\":\"白沙\",\"lastAvg\":1.81,\"sumPeople\":2521,\"lastPeople\":2195},{\"thisAvg\":2.00,\"name\":\"武宁\",\"lastAvg\":3.00," +
"\"sumPeople\":2882,\"lastPeople\":0},{\"thisAvg\":1.19,\"name\":\"青田\",\"lastAvg\":0.00,\"sumPeople\":432," +
"\"lastPeople\":0}],\"error\":\"-1\"}";
private MyRadarChart mChart;
private String[] quarters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radar_chart);
RadarBean bean = (RadarBean) JsonUtils.JsonStrToClass(v, RadarBean.class);
quarters = new String[bean.getData().size()];
ArrayList<RadarEntry> entries1 = new ArrayList<>();
ArrayList<RadarEntry> entries2 = new ArrayList<>();
for (int i=0; i<bean.getData().size();i++){
quarters[i] = bean.getData().get(i).getName();
entries1.add(new RadarEntry(bean.getData().get(i).getThisAvg()));
entries2.add(new RadarEntry(bean.getData().get(i).getLastAvg()));
}
mChart = findViewById(R.id.chart1);
mChart.setData("双线雷达", "示例一", "示例二", "人数", quarters, entries1, entries2);
mChart = findViewById(R.id.chart2);
mChart.setData("单线雷达", "", "示例二", "人数", quarters, null, entries2);
/*
mChart.setBackgroundColor(Color.WHITE);
mChart.getDescription().setEnabled(false);
mChart.setWebLineWidth(0.5f);
mChart.setWebColor(Color.parseColor("#f7c8b9"));
mChart.setWebLineWidthInner(0.5f);
mChart.setWebColorInner(Color.parseColor("#f7c8b9"));
mChart.setWebAlpha(100);
// create a custom MarkerView (extend MarkerView) and specify the layout
// to use for it
MarkerView mv = new RadarMarkerView(this, R.layout.radar_markerview);
mv.setChartView(mChart); // For bounds control
// mChart.setMarker(mv); // Set the marker to the chart
setData();
mChart.animateXY(
1400, 1400,
Easing.EasingOption.EaseInOutQuad,
Easing.EasingOption.EaseInOutQuad);
XAxis xAxis = mChart.getXAxis();
xAxis.setTextSize(9f);
xAxis.setYOffset(0f);
xAxis.setXOffset(0f);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return quarters[(int) value % quarters.length];
}
});
xAxis.setTextColor(Color.parseColor("#888888"));
YAxis yAxis = mChart.getYAxis();
// yAxis.setLabelCount(5, false);
yAxis.setTextSize(8f);
yAxis.setTextColor(Color.parseColor("#888888"));
yAxis.setAxisMinimum(0f);
// yAxis.setAxisMaximum(5f);
yAxis.setDrawLabels(true);
Legend l = mChart.getLegend();
l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
l.setOrientation(Legend.LegendOrientation.VERTICAL);
l.setDrawInside(false);
l.setXEntrySpace(7f);
l.setYEntrySpace(5f);
l.setTextColor(Color.parseColor("#888888"));
*/
}
/*
public void setData() {
RadarBean bean = (RadarBean) JsonUtils.JsonStrToClass(v, RadarBean.class);
quarters = new String[bean.getData().size()];
ArrayList<RadarEntry> entries1 = new ArrayList<>();
ArrayList<RadarEntry> entries2 = new ArrayList<>();
for (int i=0; i<bean.getData().size();i++){
Log.e("ff", bean.getData().get(i).getThisAvg() + ", " + bean.getData().get(i).getLastAvg());
quarters[i] = bean.getData().get(i).getName();
entries1.add(new RadarEntry(bean.getData().get(i).getThisAvg()));
entries2.add(new RadarEntry(bean.getData().get(i).getLastAvg()));
}
RadarDataSet set1 = new RadarDataSet(entries1, "同期");
set1.setColor(MyChartColorTheme.TGAY_COLOR);
set1.setFillColor(MyChartColorTheme.TGAY_COLOR);
set1.setDrawFilled(true);
set1.setFillAlpha(100);
set1.setLineWidth(0.2f);
set1.setDrawHighlightCircleEnabled(true);
set1.setDrawHighlightIndicators(false);
RadarDataSet set2 = new RadarDataSet(entries2, "本期");
set2.setColor(MyChartColorTheme.RED_COLOR);
set2.setFillColor(MyChartColorTheme.RED_COLOR);
set2.setDrawFilled(true);
set2.setFillAlpha(100);
set2.setLineWidth(0.2f);
set2.setDrawHighlightCircleEnabled(true);
set2.setDrawHighlightIndicators(false);
ArrayList<IRadarDataSet> sets = new ArrayList<>();
sets.add(set1);
sets.add(set2);
RadarData data = new RadarData(sets);
data.setValueTextSize(8f);
data.setDrawValues(false);
data.setValueTextColor(Color.parseColor("#FF6633"));
mChart.setData(data);
mChart.invalidate();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.radar, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.actionToggleValues: {
for (IDataSet<?> set : mChart.getData().getDataSets())
set.setDrawValues(!set.isDrawValuesEnabled());
mChart.invalidate();
break;
}
case R.id.actionToggleHighlight: {
if (mChart.getData() != null) {
mChart.getData().setHighlightEnabled(!mChart.getData().isHighlightEnabled());
mChart.invalidate();
}
break;
}
case R.id.actionToggleRotate: {
if (mChart.isRotationEnabled())
mChart.setRotationEnabled(false);
else
mChart.setRotationEnabled(true);
mChart.invalidate();
break;
}
case R.id.actionToggleFilled: {
ArrayList<IRadarDataSet> sets = (ArrayList<IRadarDataSet>) mChart.getData()
.getDataSets();
for (IRadarDataSet set : sets) {
if (set.isDrawFilledEnabled())
set.setDrawFilled(false);
else
set.setDrawFilled(true);
}
mChart.invalidate();
break;
}
case R.id.actionToggleHighlightCircle: {
ArrayList<IRadarDataSet> sets = (ArrayList<IRadarDataSet>) mChart.getData()
.getDataSets();
for (IRadarDataSet set : sets) {
set.setDrawHighlightCircleEnabled(!set.isDrawHighlightCircleEnabled());
}
mChart.invalidate();
break;
}
case R.id.actionSave: {
if (mChart.saveToPath("title" + System.currentTimeMillis(), "")) {
Toast.makeText(getApplicationContext(), "Saving SUCCESSFUL!",
Toast.LENGTH_SHORT).show();
} else
Toast.makeText(getApplicationContext(), "Saving FAILED!", Toast.LENGTH_SHORT)
.show();
break;
}
case R.id.actionToggleXLabels: {
mChart.getXAxis().setEnabled(!mChart.getXAxis().isEnabled());
mChart.notifyDataSetChanged();
mChart.invalidate();
break;
}
case R.id.actionToggleYLabels: {
mChart.getYAxis().setEnabled(!mChart.getYAxis().isEnabled());
mChart.invalidate();
break;
}
case R.id.animateX: {
mChart.animateX(1400);
break;
}
case R.id.animateY: {
mChart.animateY(1400);
break;
}
case R.id.animateXY: {
mChart.animateXY(1400, 1400);
break;
}
case R.id.actionToggleSpin: {
mChart.spin(2000, mChart.getRotationAngle(), mChart.getRotationAngle() + 360, Easing.EasingOption
.EaseInCubic);
break;
}
}
return true;
}
*/
}